登录后台

页面导航

本文编写于 196 天前,最后修改于 196 天前,其中某些信息可能已经过时。

前情提要

今天,我打算在Linux上弄个电子邮件服务端,好用来发送邮件评论通知,还有验证码之类的。安装过程一切正常,邮件也能正常发送、接收。但是当我尝试用PHP通过STMP来实现自动发信时,却出现了以下错误:
PHPMailer\PHPMailer\Exception: SMTP connect() failed.

提示我连不上STMP?那可能是程序有点问题,好吧,那就检查一下。
浅浅地检查了一下后,并没有发现问题。

可能是防火墙没放25口吧。我想

25端口是开放的。

可是,25端口是开放的啊。

那连接一下试试。
果然,用Telnet命令测试,提示连不上;用人家的检测工具检测,也是连不上。

???

⌇●﹏●⌇
这就离谱了。于是我去搜了一下,在腾讯云官网找到了这个:

为了提升腾讯云 IP 地址发邮件的质量,默认限制云服务器 TCP 25 端口连接外部地址,如果您没有在云上部署邮件服务,该限制不会影响您的服务;如果您需要使用邮件服务,我们诚挚地向您推荐腾讯企业邮箱。如果您一定要使用云主机向外连接 TCP 25 端口,请确保 TCP 25 端口仅用来连接第三方 SMTP 服务器,从第三方 SMTP 服务器外发邮件。如发现您使用云主机直接 SMTP 发送邮件,腾讯云有权永久封禁 TCP 25 端口,并不再提供相关服务。

简单来说,就是官方封了25端口,想用得要申请。且申请后25端口只能用来连其它服务商的STMP服务器,否则就会遭到封禁。
不止是腾讯云,阿里云等大厂也封了25端口。

离谱!!!#

解决方法

保险起见,我们就按照人家规定的来吧!

邮件转发服务算得上是比较靠谱的。邮件通过邮件转发服务器发送到收件人邮件服务器。转发服务器起到了代理作用。(发送者邮箱不会变)

其它。。。好像也没什么好办法了。但也可以去注册个企业邮箱,只不过STMP,POP3之类的功能要收费。

本人水平有限。要是大佬们有更好的办法,欢迎评论留言。谢谢啦。