今天遇到了,需要发送激活邮件的需求,分享一下我的成果。
Properties pro = System.getProperties();
// 设置smtp服务器
pro.put("mail.smtp.host", "smtp.163.com");
// 设置认证
pro.put("mail.smtp.auth", "true");
// 配置账号、密码
Authenticator authentication = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("163邮箱", "163授权码");
}
};
// 获取默认session对象
Session session = Session.getInstance(pro, authentication);
// 创建默认的 MimeMessage 对象
Message mailMessage = new MimeMessage(session);
// 创建邮件发送者地址
Address from = new InternetAddress("163邮箱");
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 设置收件人邮箱
mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮箱"));
// 设置主题
mailMessage.setSubject("主题");
// 设置内容(文字内容)
// mailMessage.setText("希望激活");
// 设置内容(html)
mailMessage.setContent("<a href=\"http://baidu.com\">希望激活</a>", "text/html");
// 发送消息
Transport.send(mailMessage);
注意:代码内的两处 “163邮箱” ,是同一个邮箱
0
关于 MimeMessage 的setContent方法的第二个参数为第一个参数的 Mime type,不同的值导致不同的结果。比如,产生附件之类的结果。