/**
* 创建一封只包含文本的简单邮件
*
* @param session 和服务器交互的会话
* @param fromUser 发件人邮箱
* @param toUser 收件人邮箱
* @return
* @throws Exception
*/
public MimeMessage createMimeMessage(Session session, String toUser, String fromUser, String title, String content)
throws Exception {
// 创建一封邮件
MimeMessage message = new MimeMessage(session);
// From: 发件人
message.setFrom(new InternetAddress(fromUser, "QMS服务器", "UTF-8"));
// To: 收件人
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(toUser, "MES服务器", "UTF-8"));
// Subject: 邮件主题
message.setSubject(title, "UTF-8");
// Content: 邮件正文
message.setContent(content, "text/html;charset=UTF-8");
// 设置发件时间
message.setSentDate(new Date());
// 保存设置
message.saveChanges();
return message;
}
// 配置工具
public void createMailSender(String toUser, String fromUser, String pwd, String title, String content)// 收件人 发件人 密码(授权码) 标题 内容
throws Exception {
// 创建参数配置, 用于连接邮件服务器的参数配置
Properties props = new Properties(); // 参数配置
props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
props.setProperty("mail.smtp.host", "smtp.qq.com"); // 发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
// 根据配置创建会话对象, 用于和邮件服务器交互
Session session = Session.getInstance(props);
session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log
// 创建一封邮件
MimeMessage message = createMimeMessage(session, toUser, fromUser, title, content);
// 根据 Session 获取邮件传输对象
Transport transport = session.getTransport();
transport.connect(fromUser, pwd);
// 发送邮件
transport.sendMessage(message, message.getAllRecipients());
// 关闭连接
transport.close();
}