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

createh57个月前 (12-15)技术教程112

报错信息:MailConnectException: Couldn't connect to host, port: smtp.mxhichina.com, 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>

相关文章

在Spring Boot中实现邮件发送功能的详细指南

有时候,我们可能会用邮件确认、或者是发送重置密码的链接,或者是通过邮件来发送一些通知提醒的功能,在Spring Boot中内置了邮件发送的功能,下面我们就来看看如何在Spring Boot中利用现有的...

使用SpringBoot发送邮件,就是这么容易

前言Hi,大家好,我是希留。在项目的开发工程中,经常有需要发送邮件的功能场景,比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。那遇到这种功能的时候应该怎么去做呢?本篇文章带大家通过Spr...