一.内置驱动jar包是

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>2.7.16-SNAPSHOT</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context-support</artifactId>
  <version>5.3.30-SNAPSHOT</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>jakarta.mail</artifactId>
  <version>1.6.7</version>
  <scope>compile</scope>
</dependency>

 

二、场景描述

        在使用 JavaMailSender.send(mimeMessage); 发送邮件时,时间太久,至少18s以上。

三、问题展现

        通过在代码中,设置mail中Session的debug日志分析,主要是两处源码耗时太久。

四、解决如下可以

        // 解决本地DNS未配置 ip->域名场景下,邮件发送太慢的问题
        System.getProperties().setProperty("mail.mime.address.usecanonicalhostname", "false");
        // 获取 MimeMessage
        MimeMessage mimeMessage = sender.createMimeMessage();
        Session session = mimeMessage.getSession();
        // 设置 日志打印控制器
        session.setDebug(true);
        //  解决本地DNS未配置 ip->域名场景下,邮件发送太慢的问题
        session.getProperties().setProperty("mail.smtp.localhost", "myComputer");

Logo

一站式 AI 云服务平台

更多推荐