前言:

由于最近在做一个打卡项目,当工作日自动打卡成功时向收件人发送邮件通知打卡内容,而使用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