linux环境下发送stmp邮件失败

这篇博客主要记录了在PHP环境下,通过JS调用PHP邮件接口时遇到的一系列问题及解决方案。首先确认接口状态正常,接着解决了类找不到和Linux文件系统大小写敏感问题。然后检查了openssl和socket拓展,确保它们已启用。博主还检查了系统能否正常访问外网,并调试了mail类,发现是由于SELinux权限问题导致的错误。最终,通过调整SELinux策略解决了问题。
1、js端调用php接口,接口状态200,排除接口访问不通问题
2、调用接口成功,打印phpmail类成功,排除Linux区分大小写未找到类问题
3、php openssl拓展和soket拓展已经打开,排除拓展问题
4、linux环境中是否可以ping通baidu.com
5、打印mail类报错的方法:return $mail->ErrorInfo; 
6、使用netstat - tnl命令查看端口是否被占用
   以及/etc/init.d/iptables stop查看端口是否开启
7、看到一片博客是写linux可能禁用一些函数,但是打开之后还是显示链接不上邮箱
有两个地方可能禁用此函数:
1. allow_url_fopen = On 查看等于后面是否为 ON,如果为OFF时函数将被禁用
2. disable_functions = fsockopen pfsockopen (我的就是这样)这里应该去掉前面的	“fsockopen”。使之变成:disable_functions = pfsockopen
8、打开mail类的调试方法:$mail->SMTPDEBUG = true;报错如下
SMTP -> ERROR: Failed to connect to server: Permission denied (13)
解决方法:
SELinux 阻止了 httpd 的连接。修改方式也给出来了,以 root 身份运行以下命令即可:
//httpd s are allowed to connect out to the network
setsebool -P httpd_can_network_connect 1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值