使用SMTP无法发送邮件报500错误 | 解决阿里云ECS无法通过25端口发送邮件

概述

更换服务器后同时升级了运行环境,再使用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.

# 没问题,可以连接
测试服务器SMTP25端口和465端口是否可以使用

转载请注明:半亩方塘 » 使用SMTP无法发送邮件报500错误 | 解决阿里云ECS无法通过25端口发送邮件