SpringBoot实现简单的发送邮件
1. 先开启POP3
打开QQ邮箱 -> 设置 -> 账户 -> 开启 POP3/SMTP服务
发送短信后会收到授权码,记住这个授权码。(注意不要泄露)
2. 创建项目
导入两个依赖
其中Java Mail Sender的依赖
<!-- Java Mail Sender -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置src\main\resources下的application.properties
server.port=1314
spring.mail.host=smtp.qq.com
#邮箱号
spring.mail.username=xxxx@qq.com
#授权码(不是密码)
spring.mail.password=**************
spring.mail.default-encoding=utf-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
@RestController //框架自动创建对象
public class MailController {
//发送邮件的对象
final JavaMailSender javaMailSender;
public MailController(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
/**
* 发送邮件的方法
* @param subject 邮件标题
* @param text 邮件正文
*/
public void sendMail(String subject,String text){
//创建邮件
SimpleMailMessage mailMessage = new SimpleMailMessage();
//设置收件人
mailMessage.setTo("123456@qq.com");
//设置发件人
mailMessage.setFrom("456789@qq.com");
//设置邮件标题
mailMessage.setSubject(subject);
//设置邮件标题
mailMessage.setText(text);
//发送邮件
javaMailSender.send(mailMessage);
}
//发送普通邮件
@RequestMapping("/send1")
public String send1(){
sendMail("测试邮件标题", "测试邮件正文");
return "测试邮件发送成功!!";
}
//出异常,发邮件
@RequestMapping("/send2")
public String send2(){
try{
int a = 10 / 0;
System.out.println(a);
}catch(Exception e){
//把异常信息转换成字符串
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
sendMail("异常信息", stringWriter.toString());
}
return "异常信息发送成功!";
}
}