一、编写代码
1.1 添加 maven 依赖
<!-- 添加发送邮件依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
1.2 修改 application.properties
# mail server address
# QQ smtp.qq.com
# sina smtp.sina.cn
# aliyun smtp.aliyun.com
# 163 smtp.163.com
# 邮箱的中心服务器的地址
spring.mail.host=smtp.qq.com
# 邮箱的用户名
spring.mail.username=1982392926@qq.com
# mail qq邮箱的授权码
spring.mail.password=ofpzivescrfldceh
spring.mail.default-encoding=UTF-8
# 邮件发送的地址
mail.fromMail.sender=1982392926@qq.com
# 邮件接收的地址
mail.fromMail.receiver=2316949230@qq.com
1.3 编写服务类代码
@RestController
public class MailController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${mail.fromMail.sender}")
private String sender;
@Value("${mail.fromMail.receiver}")
private String receiver;
@Autowired
private JavaMailSender javaMailSender;
@RequestMapping("/sendMail")
public String sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sender);
message.setTo(receiver);
message.setSubject("相亲申请");
message.setText("你好,小伙子吃槟榔啊!");
try {
javaMailSender.send(message);
logger.info("简单邮件已经发送。");
} catch (Exception e) {
logger.error("发送简单邮件时发生异常!", e);
}
return "success";
}
@RequestMapping("/sendHtmlMail")
public String testHtmlMail() {
String content="<html>\n" +
"<body>\n" +
" <h3>hello world ! 这是一封Html邮件!</h3>\n" +
"</body>\n" +
"</html>";
MimeMessage message = javaMailSender.createMimeMessage();
try {
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("html mail");
helper.setText(content, true);
javaMailSender.send(message);
logger.info("html邮件发送成功");
} catch (MessagingException e) {
logger.error("发送html邮件时发生异常!", e);
}
return "success";
}
@RequestMapping("/sendFilesMail")
public String sendFilesMail() {
String filePath="/file/db.sql";
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("附件邮件");
helper.setText("这是一封带附件的邮件", true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
helper.addAttachment(fileName, file);
javaMailSender.send(message);
logger.info("带附件的邮件已经发送。");
} catch (MessagingException e) {
logger.error("发送带附件的邮件时发生异常!", e);
}
return "success";
}
@RequestMapping("/sendInlineResourceMail")
public String sendInlineResourceMail() {
String Id = "dalaoyang12138";
String content="<html><body>这是有图片的邮件:<img src=\'cid:" + Id + "\' ></body></html>";
String imgPath = "/Users/dalaoyang/Downloads/dalaoyang.jpeg";
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender);
helper.setTo(receiver);
helper.setSubject("这是有图片的邮件");
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(imgPath));
helper.addInline(Id, res);
javaMailSender.send(message);
logger.info("嵌入静态资源的邮件已经发送。");
} catch (MessagingException e) {
logger.error("发送嵌入静态资源的邮件时发生异常!", e);
}
return "success";
}
}
二、开启邮箱支持
进入 qq 邮箱------设置------账户-------开启服务即可
三、验证
调用方法,查看返回值,并查看 QQ 邮箱是否接收到消息