资料参考:发送简单邮件(Send simple email) - JavaMail API 中文教程 - 开发文档 - 文江博客
核心类及描述信息:
类 | 描述 |
---|---|
javax.mail.Session | API的关键类。 多线程对象表示连接工厂。 |
javax.mail.Message | 一个为电子邮件建模的抽象类。 子类提供实际的实现。 |
javax.mail.Address | 一个抽象类,用于对消息中的地址(来自和到地址)进行建模。 子类提供特定的实现。 |
javax.mail.Authenticator | 用于保护邮件服务器上的邮件资源的抽象类。 |
javax.mail.Transport | 一种抽象类,用于模拟用于发送电子邮件的邮件传输机制。 |
javax.mail.Store | 一种抽象类,用于为消息存储及其访问协议建模,用于存储和检索消息。 商店分为文件夹。 |
javax.mail.Folder | 表示邮件消息文件夹的抽象类。 它可以包含子文件夹。 |
javax.mail.internet。 MimeMessage | Message是一个抽象类,因此必须使用子类; 在大多数情况下,您将使用MimeMessage。 MimeMessage是一种了解MIME类型和标头的电子邮件。 |
javax.mail.internet。 InternetAddress | 此类表示使用RFC822语法的Internet电子邮件地址。 典型的地址语法格式为user@host.domain或Personal Name <user@host.domain> 。 |
开发流程:
1、创建配置,spring容器中注入java.mail.Session类:
package com.jettech.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; import javax.mail.Session; import java.util.Properties; @Configuration public class EmailConfig { //邮箱服务器 @Value("${mail.host}") private String host; //邮件发送发有限地址 @Value("${mail.from}") private String username; @Bean public Session session(){ Properties props = new Properties(); props.put("mail.smtp.auth", "false"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", host); Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, null); } }; return Session.getDefaultInstance(props,authenticator); } }
2、创建并发送消息
public void sendMail(String appointUser, JettechUserDTO handleUser){ try { String to = "";//接收方邮箱地址 String from = "";//发送方邮箱地址 MimeMessage message = new MimeMessage(session); MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8"); messageHelper.setFrom(new InternetAddress(from, "IMQA", "UTF-8")); messageHelper.setTo(new String[]{to}); messageHelper.setSubject("缺陷处理"); String conent = ""; String defecturl = ""; messageHelper.setText("<div style=\"color:black\">您有一个缺陷待处理。</div>" + "<div><p>"+transferRecord.toString()+",请前往<a href=\""+defecturl+"\">测管平台</a>处理!</p></div>", true); // FileSystemResource fileSystemResource = new FileSystemResource(new File("")); // 设置附件 // messageHelper.addAttachment("11.xlsx", fileSystemResource); // FileSystemResource image = new FileSystemResource(new File("")); // 设置内联图片 // messageHelper.addInline("22.jpg", image); Transport.send(message); // 插入邮件记录 } catch (Exception e) { // 插入异常邮件记录 // 发送异常邮件 logger.error(e.getMessage()); } }