更换服务器后同时升级了运行环境,再使用SMTP通过25端口无法发送邮件。尝试使用465端口SSL方式却可以正常发送邮件,这是由于新买的服务器封了25端口导致(2016年9月后购买的阿里云服务器不再支持通过25端口发送邮件)。
使用PHPMailer发送邮件报500错误,调用send方法发送邮件时无响应。而更换服务器升级环境之前可以发送邮件。
更换为使用465端口SSL方式发送即可。这是因为我之前的服务器是在2015年买的,而新服务器是在2021年购买,经查证发现2016年9月后购买的服务器25端口都被封了,因此新服务器通过25端口发送邮件无响应报500错误。
465端口是为SMTPS(SMTP-over-SSL)协议服务开放的它是SMTP协议基于SSL安全协议之上的一种变种协议,它有SSL安全协议的非对称加密的高度安全可靠性,可以保证邮件的安全性。
在此建议您使用465端口SSL方式发送邮件,该方式还更安全。如果必需使用25端口TLS方式,只能向服务器提供商申请解封25端口了。
目前不仅仅是阿里云封了25端口,其他云平台(比如百度云、腾讯云)也封了25端口,可以通过以下方式判断是否由于25端口封闭导致发送邮件失败。
# 测试连接到25端口: [root@aliyunecs ~]# telnet smtp.126.com 25 Trying 123.126.96.4... # 没有响应 # 测试连接到465: [root@iZrj974bqirdpo7lyi8a9eZ ~]# telnet smtp.126.com 465 Trying 123.126.96.4... Connected to smtp.126.com. Escape character is '^]'. Connection closed by foreign host. # 没问题,可以连接