Linux服务器下PHPMailer发送邮件失败的问题解决
这两天一直在调试PHPMailer发送邮件功能,一直都没有找到问题所在,头都快炸了.本地环境发送邮件没有问题,之前买的虚拟空间里面用的同一套代码,发送也没有问题.但是git到阿里云lunix服务器之后,邮箱就发不了了,
然后查浏览器的报错信息,发现这个
百度了一下,看了N个帖子,有的说是表单里面用了ajax提交,有的说服务器占用太高,要释放一些内存......
各个帖子里面说的方法,我都有试一试,但是无果,最后想到了是不是我的环境问题,
首先,查看了一下,phpinfo,看看相应的扩展有没有打开:
配置都是正常开启的,应该不是配置问题了,于是我想是不是25端口被占用了?
到xshell里面 netstat -tnlp 一下
果然被占用了,查了一下,465端口(SMTPS)更好用,
465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。
查看端口是否开启
xshell操作: firewall-cmd --query-port=465/tcp
no
开启: firewall-cmd --add-port=465/tcp
success
截图在这里:
好的,现在修改一下代码
$mail->Port = 25;
改成
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
测试结果
OK,被这个问题烦了两天,今天终于解决了!!!
总结一下,这问题为什么会困扰我这么久呢?
归根结底是我对linux不够熟悉,好好补知识吧,linux在以后的工作中是必不可少的!