阿里云服务器使用PHPMailer发送邮件出现504错误码
这个问题是我刚刚遇到的,之前也做过多个发送邮件的应用,但是没有遇到这样的情况,近期,运营部门搞了一个活动,平台注册了大量的用户,下午同事反馈说发送邮件提示接口错误。赶紧看看情况。
基础情况
1、阿里云服务器
2、PHPMailer扩展
3、163邮箱提供SMTP服务
4、本地测试可以发送,生产环境异常(开发环境可以发送)
出现问题
生产环境发送邮件接口出现504加载超时问题
解决方案
使用SSL协议并将端口调整为465端口。下面详细说一下。
1、阿里云服务器上放行465端口(入网);
2、代码中增加如下代码设置:
$mail->SMTPSecure = 'ssl'; $mail->Port = 465;
问题分析
504状态码的出现,首先进行了本地环境测试,发现可以正常发送邮件。那么,可以考虑代码没有问题,在环境方面,考虑了两点,分别是服务器安全环境和PHP环境。首先是做了服务器环境的检查。因为PHP环境在每次的应用中都未进行特殊的设置。所以把PHP环境的检查放在了后面。同时也查阅了网上的资料,大家都在谈论端口的问题。
1、25端口已经关闭了(国内的云服务商都关闭了这个端口);
2、使用465端口,还有兄弟说使用487端口的;
3、使用SSL进行服务;
按照各位大神的经验,检查服务器端口和设置SSL。果然,可以发送邮件了,并且发送的速度是非常快的。这里为各位前辈点个赞!