@

相关的包

  1. activation.jar
  2. javax.mail.jar

    mail包建议使用高版本写的包,否则可能会发空白邮箱(亲身经历╯︿╰)

    Javamail的GitHub项目地址:https://github.com/javaee/javamail/releases

    这样就可以用高版本的包了(~ ̄▽ ̄)~

若使用QQ邮箱或非自建邮箱则开启SMTP服务

QQ邮箱在设置-账号,中可开启



开启后的

接收邮件服务器:imap.qq.com,使用SSL,端口号993

发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587

账户名:QQ邮箱账户名(如果是VIP帐号或Foxmail帐号,账户名需要填写完整的邮件地址)

开启后可获取授权码,授权码可作为发送方邮箱的密码

编写工具类

/**
* 邮件发送工具类
* 注:需使用高版本些的javamail,否则可能出现邮件标题和内容为空
*
*/
public class MailUitl {
/**
* 发送邮件的方法
* @param to :收件人
* @param code :激活码
*/
public static void sendMail(String to,String code){
/**
* 1.获得一个Session对象.
* 2.创建一个代表邮件的对象Message.
* 3.发送邮件Transport
*/
// 1.获得连接对象
Properties props = new Properties();
//这里使用了QQ邮箱
props.setProperty("mail.host", "smtp.qq.com");
//设置端口,这里可以不设置,如是用自己的邮箱服务器则需设置
//props.setProperty("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new Authenticator() { @Override
protected PasswordAuthentication getPasswordAuthentication() {
//这里xxxxxxxx是qq邮箱的授权码
return new PasswordAuthentication("test@qq.com", "xxxxxxxxxxxx");
}
});
// 2.创建邮件对象:
Message message = new MimeMessage(session);
// 设置发件人:
try {
message.setFrom(new InternetAddress("test1@qq.com"));
// 设置收件人:
message.addRecipient(RecipientType.TO, new InternetAddress(to));
// 设置标题
message.setSubject("来自xxxxx的激活邮件");
// 设置邮件正文:
message.setContent("<h1>xxxxxx激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://127.0.0.1:8080/manxcang/user_active.action?code="+code+"'>http://127.0.0.1:8080/manxcang/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");
// 3.发送邮件:
Transport.send(message);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} } //测试
public static void main(String[] args) {
sendMail("test2@foxmail.com","11111111111111");
}
}

环境说明

以上都是在jdk1.8环境下运行有效

最新文章

  1. oracle使用sqlplus创建表空间
  2. centos6.5 升级安装pcre 8.39版本
  3. A successful Git branching model
  4. 如何配置LCD背光和LED,调试方法
  5. Cocos2d提供的字体(图文并茂)
  6. How to Enable Multi-Touch
  7. codevs 1017 乘积最大
  8. Android Studio 实时显示布局文件Preview窗口
  9. Lak3 Counting(POJ No.2386)
  10. Iterator对对象遍历
  11. 软件工程(GZSD2015)第二次作业进度
  12. Python并发实践_03_并发实战之一
  13. EBS-子库存转移和物料搬运单区别
  14. Educational Codeforces Round 30 D. Merge Sort
  15. 【转】Java的接口和抽象类
  16. noi.ac 第五场第六场
  17. [CodeForces 372A] Counting Kangaroos is Fun
  18. SQL SERVER 事务的使用(tran)
  19. Linux下EC20实现ppp拨号(转)
  20. 腾讯云CentOS升级JDK1.8

热门文章

  1. tomcat配置通过域名访问项目
  2. 文:你可以杀我,但你不能评价(judge)我
  3. mssql sqlserver 数据类型sql_variant简介说明
  4. MySQL 部署 MHA 高可用架构 (一)
  5. MySQL 主从复制开启 GTID
  6. 日志类shell脚本
  7. 联邦学习(Federated Learning)
  8. leetcode 树类问题
  9. 判断101-200之间有多少个素数,并输出所有素数,方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
  10. CF812C Sagheer and Nubian Market