前言:
由于最近在做一个打卡项目,当工作日自动打卡成功时向收件人发送邮件通知打卡内容,而使用spring-boot-starter-mail过程中有一些常见的报错需要汇总一下防止下次使用再出现
1、javax.mail.MessagingException: can’t determine local email address
报错问题:发送邮件没有设置发件人邮箱
解决:
在SimpleMailMessage对象中设置From的值
public void sendEmail(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
// 添加这一行
message.setFrom("[email protected]");
message.setTo(to);
message.setSubject(subject);
message.setText(text);
mailSender.send(message);
}
2、Got bad greeting from SMTP host: smtp.qq.com, port: 465, response: [EOF]
问题原因:使用qq的465端口需要设置协议为smtps
需要修改项目yml配置文件如下:
spring:
mail:
host: smtp.qq.com
port: 465
username: qq邮箱
password: smtp密钥
properties:
mail:
smtp:
auth: true
starttls:
enable: true
protocol: smtp