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

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

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

1、163准备工作

去163申请免费邮箱

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

2、阿里云企业邮箱

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

建邮箱账号

下面正式开始

3、引入java mail starter

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-mail</artifactId>

</dependency>

4、163邮箱的application.yml配置

spring:

  mail:

    host: smtp.163.com

    port: 25

    username: XXXX@163.com  ## 这里是完整的邮箱地址

    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: account@mydomain.com  ## 这里是完整的企业邮箱地址

    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、中文别名

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

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 = "打字狗通行证<account@dazigo.vip>";
         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)在线练习打字

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容