1.加入依赖pom文件
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<!--apache email -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
2.代码实现邮件发送-上面依赖jar包可以引到Message/Transport
package com.sheng.executor;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
/**
* @Author jiangzhisheng
* @Date 2020/5/12 17:50
* @Version 1.0
*/
public class SendEmail {
/**
* 发件人邮箱地址
*/
private static String fromEmail = "auto@163.com";
/**
* 发件人,和邮箱地址保持一致
*/
private static String user = "auto@163.com";
/**
* 收件人邮箱
*/
private static String toMail = "****@qq.com";
/**
* 发件人邮箱客户端授权码 - 这里使用的网易163邮箱,且授权码是唯一的,切记要记住
*/
private static String password = "******";
/**
* 发件人的邮箱服务器 - 网易163邮箱记得打开POP3/SMTP/IMAP服务
*/
private static String mailHost = "smtp.163.com";
/**
* 发送验证信息的邮件
* @param toEmail
* @param content
* @param title
*/
public static boolean sendMail(String toEmail, String content, String title) {
Properties properties = new Properties();
/**
* 设置发送邮件的邮件服务器的属性
*/
properties.put("mail.smtp.host", mailHost);
/**
* 用户名和密码的校验授权,这样才能通过验证(必须为true)
*/
properties.put("mail.smtp.auth", "true");
/**
* 用刚刚设置好的properties对象构建一个session
* 这个session是让开发人员看执行过程的,下面建立发送邮箱连接
*/
Session session = Session.getDefaultInstance(properties);
/**
* debug调试显示发送邮件的过程中在console处的过程信息,
*/
session.setDebug(true);
/**
* 用session为参数定义消息对象
*/
MimeMessage message = new MimeMessage(session);
try {
/**
* 发件人地址
*/
message.setFrom(new InternetAddress(fromEmail));
/**
* 收件人地址
*/
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
/**
* 邮件标题
*/
message.setSubject(title);
/**
* 向multipart对象中添加邮件的各个部分内容,包括内容和附件
*/
Multipart multipart = new MimeMultipart();
/**
* 邮件内容
*/
BodyPart contentPart = new MimeBodyPart();
/**
* 设置文本类型和编码格式utf-8
*/
contentPart.setContent(content, "text/html;charset=utf-8");
multipart.addBodyPart(contentPart);
message.setContent(multipart);
message.saveChanges(); // 保存变化
/**
* 连接服务器的邮箱
*/
Transport transport = session.getTransport("smtp");
/**
* 发送邮件 服务器/邮箱地址/授权码
*/
transport.connect(mailHost, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("测试邮件已发送成功!!!");
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
String content= "你好啊,亲爱的召唤师,超高爆率精品手游《一人之下》等你来战!!!点击链接<a href='http://www.baidu.com'>进入游戏</a>有100元惊喜大礼包噢";
String title = "测试小通知";
sendMail(toMail, content, title);
}
}
3.网易163邮箱必须打开POP3/SMTP/IMAP服务
登录网易163 - 设置 - POP3/SMTP/IMAP - 接下来开启就行了,很简单(第一次开启的话,授权码最好记住了)