MailConnectException: Couldn't connect to host, port: smtp.mxhichina.com, 25

发布时间:2020-04-24作者:laosun阅读(3441)

MailConnectException:

阿里云ECS服务禁用25端口导致邮件发送失败

    本站博客升级新服务器,忽略了阿里云ECS安全配置,默认关闭发送邮件的25端口,导致无法连接到邮件服务器。


    解决方案

    网上查询共两种方案,博客使用的第二种。


    方案1

    向aliyun提交申请,解封25端口,需要3-5天。 

    该方案未经过验证,申请解封地址:https://help.aliyun.com/knowledge_detail/56130.html


    方案2

    放弃25端口,使用ssl加密并改用465端口。

    该方案经过了博主验证


    1、apache commons-email中使用方法如下:

    //启用ssl加密
    email.setSSLOnConnect(true);
    //使用465端口(不设置也可,ssl默认为465)
    email.setSslSmtpPort("465");


    2、JavaMail使用ssl加密465端口发送邮件

    主要是在原来发送邮件的配置上添加ssl,并设置为465端口。

    Properties javaMailProperties = new Properties();
    javaMailProperties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    javaMailProperties.setProperty("mail.smtp.socketFactory.port", "465");
    javaMailProperties.setProperty("mail.smtp.port", "465");


    使用spring配置如下:

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
       <property name="host" value="${mail.host}"/>
       <property name="username" value="${mail.username}"></property>
           <property name="password" value="${mail.password}"></property>
       <property name="javaMailProperties">
          <props>
             <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
             <prop key="mail.smtp.socketFactory.port">465</prop>
             <prop key="mail.smtp.port">465</prop>
          </props>
       </property>
    </bean>


2 +1

版权声明

 Java  源码

 请文明留言

0 条评论