springboot用163邮箱、阿里云企业邮箱发送邮件的配置

springboot+JavaMail用163和阿里云企业邮箱的smtp服务都可以发送邮件,区别在于发送人的邮箱地址。用163免费邮箱,收件人看到的发件邮箱是[email protected],用阿里云企业邮箱可以用自己的域名,例如[email protected]。当然,也可以用其它的免费企业邮箱。

前期准备工作做个简单描述。

1、163准备工作

去163申请免费邮箱

开通pop3/smtp服务,记下授权码,一会儿要用到

2、阿里云企业邮箱

去阿里云申请免费企业邮箱

建邮箱账号

下面正式开始

3、引入java mail starter

  org.springframework.boot

  spring-boot-starter-mail

4、163邮箱的application.yml配置

spring:

  mail:

    host: smtp.163.com

    port: 25

    username: [email protected]  ## 这里是完整的邮箱地址

    password: 授权码  ## 这里需要用到刚才提到的163邮箱pop3/smtp服务的授权码

    properties:

      mail:

        debug: false  ##  调试时这里可以用true,可以看到发送邮箱的整个流程调试信息

        smtp:

          ssl:

            trust: smtp.163.com

          auth: true

          starttls:

            enable: true    ## 这里用true

            required: true  ## 这里用true

5、阿里云企业邮箱的application.yml配置

spring:

  mail:

    host: smtp.mxhichina.com

    port: 587  ## 注意:这里的端口要用587,在阿里云ECS上才能正常发送邮件,ECS服务器开通587端口

    username: [email protected]  ## 这里是完整的企业邮箱地址

    password: 邮箱密码    ## 注意:这里是该邮箱密码,跟163邮箱不一样,阿里云没有授权码!!!

    properties:

      mail:

        debug: false  ##  调试时这里可以用true,可以看到发送邮箱的整个流程调试信息

        smtp:

          ssl:

            trust: smtp.mxhichina.com

          auth: true

          starttls:

            enable: false    ## 这里用false,跟163邮箱配置不一样

            required: false  ## 这里用false,跟163邮箱配置不一样

6、两者的配置区别

端口:163用25,阿里云企业邮箱用587

password:163用授权码,阿里云企业邮箱用邮箱账号密码

starttls.enable、starttls.required:163配置true,阿里云企业邮箱配置false

7、中文别名

中文别名的格式:中文别名<邮箱地址>,例如:打字狗通行证

public boolean SendMail(String receiver, String topic, String content) {
    JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender");
    MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null;
    try {
        helper = new MimeMessageHelper(message, true);
        // 设置发送方带别名的邮箱地址
        String String from = "打字狗通行证";
         helper.setFrom(from); helper.setTo(receiver);
         helper.setSubject(topic); helper.setText(content, true);
         mailSender.send(message); return true;
        } catch (MessagingException e) {
             e.printStackTrace(); return false;
        }

}

想练打字的朋友可以去我的网站:打字狗(dazigo.vip)在线练习打字

你可能感兴趣的:(springboot用163邮箱、阿里云企业邮箱发送邮件的配置)