Spring 推出了 JavaMailSender 简化了发送邮件的过程,现在 SpringBoot 又对其进行了封装,使用起来及其简单方便!
这里使用的是 QQ 邮箱,使用其它的邮箱大同小异,话不多说,直接上代码:
1. 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置邮箱相关信息
spring.mail.host=smtp.qq.com # 邮箱服务地址
spring.mail.username=789*****@qq.com # 邮箱用户名
spring.mail.password=******** # 邮箱授权码
spring.mail.default-encoding=UTF-8 # 字符编码
smtp.qq.com 是腾讯的邮箱服务器,用户名就是自己的 QQ 邮箱,这里的 spring.mail.password
并不是让你输入 QQ 邮箱的密码,而是邮箱的授权码(授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码)可以在QQ 邮箱 -> 设置 -> 账户 -> 开启POP3/SMTP服务 -> 生成授权码
获取授权码。
3. 编写 MailController 类实现邮件的简单发送
package com.example.email.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/mail")
public class MailController {
@Autowired
private JavaMailSender javaMailSender;
@GetMapping("/send")
public String sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
// 发送人邮箱
message.setFrom("发送人邮箱");
// 接收人邮箱
message.setTo("接收人邮箱");
// 邮箱主题
message.setSubject("主题:qwe qwe");
// 邮件内容
message.setText("hello world");
try {
// 发送邮件
javaMailSender.send(message);
return "发送成功!";
} catch (MailException e) {
e.printStackTrace();
return "发送失败!";
}
}
}
4. 启动项目并访问
此时接收人邮箱中就会出现你发送的邮件了。