•  

通过smtp 发送邮件,使用25端口有一个坑

2017-12-09

    我搭建了应用,通过java 调用各邮件服务器发送邮件,在个人电脑调用SMTP 25端口 一切正常,然而部署到阿里云服务器上,确发现连接失败。

错误信息如下:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.mxhichina.com, port: 25;
  nested exception is:
	java.net.ConnectException: Connection timed out (Connection timed out)

然后经过和阿里云技术人员沟通,被告知 “大部分服务器为防止乱发邮件,对25端口做了访问限制”,也就是说不允许你程序对外访问25端口。

这不是坑么,现在好多的邮件服务器SMTP 对外开放的端口是就是25啊,因此经过摸索发现邮件服务商还对外开放了SLL 协议465端口。

如下图163对外公开的信息


注意:如果使用SSL协议,那么请务必加上以下代码,否则会导致发送失败。

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
申明:本文受法律保护,未经作者同意不得用于商业用途,如转载请说明出处!
评论