关于使用Java Mail进行邮件发送,抛出Could not connect to SMTP host: xx@xxx.com, port: 25的异常可能
当时找了好久没发现问题,服务器一直报异常。
javax.mail.MessagingException: Could not connect to SMTP host: smtp.ym.163.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out (Connection timed out)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
然后测试中本地代码,发现本地可以发送邮件,但是发布到服务器中,邮件便发送不成功!!!
然后去查看了腾讯云主机,发现默认限制云服务器 TCP 25 端口。
以下是腾讯给出解析:
为了提升腾讯云 IP 地址发邮件的质量,默认限制云服务器 TCP 25 端口连接外部地址,如果您没有在云上部署邮件服务,该限制不会影响您的服务;如果您需要使用邮件服务,我们诚挚地向您推荐腾讯企业邮箱。如果您一定要使用云主机向外连接 TCP 25 端口,请确保 TCP 25 端口仅用来连接第三方 SMTP 服务器,从第三方 SMTP 服务器外发邮件。如发现您使用云主机直接 SMTP 发送邮件,腾讯云有权永久封禁 TCP 25 端口,并不再提供相关服务。
当然,按照下面步骤解封即可:
阿里云估计也是也有封禁这个端口的,具体步骤就看阿里云怎么解封。