springboot2 开启ssl 使用465端口 多线程 发送邮件 ( mail )

  1. pom.xml 中添加 mail 的依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  1. application.yml 中添加 mail 配置(注意设置自己的邮箱username和密码password)
spring:
  mail:
    port: 465
    host: smtp.ym.163.com
    username: [email protected]
    password: xxxxxxxxx
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          ssl:
            enable: true
          socketFactory:
              port: 465
              class: javax.net.ssl.SSLSocketFactory
          auth: true
          starttls:
            enable: true
            required: true
  1. 发送简单邮件(文本内容,非html内容,内容换行用 \n)代码
@Service
public class MailService {
    private static final Logger logger = LoggerFactory.getLogger(MailService.class);
    private JavaMailSender javaMailSender;

    @Autowired
    public void setJavaMailSender(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }

    // 发送邮件是耗时任务,需要另起线程,不影响主线程
    public void sendSimpleMail(String from, String to, String title, String text) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    SimpleMailMessage mailMessage = new SimpleMailMessage();
                    mailMessage.setFrom(from);      // 发送人
                    mailMessage.setTo(to);          // 接收人
                    mailMessage.setSubject(title); // 标题
                    mailMessage.setText(text);    // 内容

                    javaMailSender.send(mailMessage);
                } catch (Exception e) {
                    logger.error("发送邮件失败");
                }
                logger.info("发送邮件完毕");
            }
        }).start();
    }
}

参考:http://www.fengyunxiao.cn

猜你喜欢

转载自blog.csdn.net/m0_37202351/article/details/86292750