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

createh56个月前 (12-15)技术教程99

报错信息: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>

相关文章

钓鱼邮件是怎么实现的?

我们可能会收到一些钓鱼邮件,今天就说说这种邮件是怎么实现的,专门去百度了一下具体的定义,放出来给大家看看。按照道理来说,学习了本文,你也就可以去发钓鱼邮件了,但是不能做坏事哈!钓鱼邮件指利用伪装的电邮...

Vue3问题:如何实现拼图验证+邮箱登录功能?前后端!

前端功能问题系列文章,点击上方合集↑序言大家好,我是大澈!本文约3500+字,整篇阅读大约需要5分钟。本文主要内容分三部分,第一部分是需求分析,第二部分是实现步骤,第三部分是问题详解。如果您只需要解决...