邮件发送本是一件比较复杂的过程、自从邮件发送被封装到spring-boot-starter-mail.jar中、在spring boot项目中引入spring-boot-starter-mail.jar后发送邮件就是一件相当方便的工作.
一、引入依赖
为了方便引入spring-boot-starter-web.jar
1 2 3 4 5 6 7 8 9 10 11
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.13.RELEASE</version> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.13.RELEASE</version> </dependency>
|
二、配置(application.yml)
配置smtp、发送方账号密码。
SMTP地址:腾讯企业邮箱smtp使用smtp.exmail.qq.com;腾讯个人邮箱使用smtp.qq.com;163邮箱使用smtp.163.com
1 2 3 4 5 6
| spring: mail: host: smtp.qiye.aliyun.com username: xxx@xx.com password: xxxxxx
|
三、使用JavaMailSender
1、发送简易消息体SimpleMailMessage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| package net.zuze.controller;
import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.mail.MessagingException;
@RestController @RequestMapping("/") @Api("邮件") public class IndexController {
@Resource JavaMailSender javaMailSender;
@PostMapping("sendMail") public void sendMail() throws MessagingException { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("from@xx.com"); message.setTo("to@xx.com"); message.setSubject("subject-测试"); message.setText("text测试"); javaMailSender.send(message); } }
|
2、发送复杂邮件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| package net.zuze.controller;
import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import java.io.File;
@RestController @RequestMapping("/") public class IndexController {
@Resource JavaMailSender javaMailSender;
@PostMapping("sendComplexMail") public void sendComplexMail() throws Exception{ MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(message); messageHelper.setFrom("from@xx.com"); messageHelper.setTo("to@xx.com"); messageHelper.setSubject("subject-测试"); messageHelper.setText("text-测试"); messageHelper.addAttachment("attachmentName",new File("attachmentPath")); }
}
|