1 介绍
参考连接:spring-boot-demo
springboot整合Mail简单文本邮件
2 开始
2.1 pom
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><jasypt.version>2.1.1</jasypt.version></properties><dependencies><!-- Spring Boot 邮件依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--jasypt配置文件加解密--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>${jasypt.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.1</version></dependency><!-- Spring Boot 模板依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies><build><finalName>spring-boot-demo-email</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
2.2 application.yml
spring:mail:host: smtp.qq.com #SMTP服务器地址port: 465username: ***3457107 #登陆账号# 敏感数据时,可用jasypt加密,格式:ENC(加密字符串),算法:password: ENC(your encryptor code) #登陆密码(或授权码)#服务协议protocol: smtp# 连接失败,跳过错误test-connection: true# 编码集default-encoding: UTF-8properties:from: ***3457107@qq.com #邮件发信人(即真实邮箱)to: ***7887868@qq.com # 邮件接信人(为方便测试)# 设置是否需要认证mail.smtp.auth: true#mail.smtp.starttls.enable: truemail.smtp.starttls.required: true# sslmail.smtp.ssl.enable: trueservlet:multipart:max-file-size: 10MB #限制单个文件大小max-request-size: 50MB #限制请求总量# 为 jasypt 配置解密秘钥jasypt:encryptor:password: hikktn# 自定义算法,默认算法:PBEWithMD5AndDESivGeneratorClassname: org.jasypt.salt.RandomIVGenerator
2.3 MailService.java
public class MailService {/*** java邮件发送类*/@Autowiredprivate JavaMailSender mailSender;/*** 发件人邮箱*/@Value("${spring.mail.properties.from}")private String from;/*** 收件人邮箱*/@Value("${spring.mail.properties.to}")private String to;/*** 发送正文中有静态资源的邮件** @param subject 邮件主题* @param content 邮件内容* @param rscPath 静态资源地址* @param rscId 静态资源id* @param cc 抄送地址* @throws MessagingException 邮件发送异常*/@Overridepublic void sendResourceMail(String subject, String content, String rscPath, String rscId, String... cc) throws MessagingException {MimeMessage message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);if (ArrayUtil.isNotEmpty(cc)) {helper.setCc(cc);}FileSystemResource file = new FileSystemResource(new File(rscPath));helper.addInline(rscId, file);mailSender.send(message);}}
2.4 静态资源
存放目录:resources\static\xkcoding.png
2.5 测试类
@RunWith(SpringRunner.class)@SpringBootTestpublic class MailServiceTest {@Autowiredprivate MailService mailService;/*** 测试静态资源邮件** @throws MessagingException 邮件异常*/@Testpublic void sendResourceMail() throws MessagingException {String rscId = "xkcoding";String content = "<html><body>这是带静态资源的邮件<br/><img src=\'cid:" + rscId + "\' ></body></html>";URL resource = ResourceUtil.getResource("static/xkcoding.png");mailService.sendResourceMail( "这是一封带静态资源的邮件", content, resource.getPath(), rscId);}}
2.6 结果

