第一次尝试使用SpringBoot集成邮件系统简单开发

smtp.163.com邮箱服务器

1.开启邮箱服务

第一次尝试使用SpringBoot集成邮件系统简单开发_第1张图片

2.配置邮件服务

在pom.xml中引入spring-boot-starter-mail相关依赖


	org.springframework.boot
	spring-boot-starter-mail
	2.1.2.RELEASE

在application.yml中添加如下配置

mail:
    host: smtp.163.com #SMTP服务器地址
    username: #登录账号
    password: #登录密码或授权码
    properties:
      from: #邮箱发件人
      mail:
        smtp:
          ssl:
            enable: true #开启SSL服务,由于使用的是服务器SSL协议端口号465,所以要开启SSL
          auth: true
          starttls:
            enable: true
            required: true
    default-encoding: utf-8
    port: 465 #SSL协议端口号

参考:
第一次尝试使用SpringBoot集成邮件系统简单开发_第2张图片
[源地址]http://help.163.com/09/1223/14/5R7P3QI100753VB8.html

3.发送文本邮件

@RestController
public class sendMail {

    @Autowired
    private JavaMailSender mailSender;
    
    @RequestMapping(value = "/sendMail")
    public String sendSimpleMail(){

        try {
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            //发出邮件邮箱地址
            simpleMailMessage.setFrom();
            //目的地邮箱地址
            simpleMailMessage.setTo();
           //主题
            simpleMailMessage.setSubject("测试邮件发送");
            //内容
            simpleMailMessage.setText("2019-06-24 发送一封邮件");
            //发送邮件
            mailSender.send(simpleMailMessage);

            return "success";

        }catch(Exception e){
            System.out.println("###邮件发送失败:"+e.getMessage());
            return "error";
        }
    }
}

>遇到的坑:

1.发送人的邮箱必须和登录的邮箱一致,即:simpleMailMessage.setFrom()这里的参数要和application.yml中的mail.username一致!!!否则可能报“553 mail from must equal authorized user”的错误

2.端口最好使用465且要开启SSL服务,因为25端口总是会报 "Couldn’t connect to host, port:smtp.xx.com, 25; timeout -1"这个错误

参考自前辈的经验,谢谢!
https://www.jianshu.com/p/5eb000544dd7
https://blog.csdn.net/qq_20597149/article/details/78463538

你可能感兴趣的:(springboot)