php linux mail smtp,linux空间使用smtp类无法发送邮件解决方法

博主遇到网站SMTP自动发送邮件功能失效的问题,经过排查发现是由于Linux服务器的php.ini配置禁用了fsockopen函数。通过修改php.ini文件,取消对fsockopen的禁用,成功解决了邮件发送问题。
摘要由CSDN通过智能技术生成

偶然发现我网站后台自动发送邮件功能不能用了,报这个错误:

Trying to smtp.126.com:25 Error: Cannot connenct to relay host smtp.126.com Error: () Error: Cannot send email to web@daixiaorui.com state

大概意思是:无法connenct中继主机smtp.126.com 错误:()错误:无法发送电子邮件给web@daixiaorui.com

我很好奇,网站一直没动啊。为了排除问题,把最近备份的恢复一些关键的文件后还是不能成功发送邮件。然后我把smtp类和与发送邮件相关的核心文件、代码弄到本地运行了一下,非常成功。现在我开始怀疑这肯定就是linux空间配置的问题了,上次月新换了一个linux的空间,估计问题就出在这里。(PS:有兴趣的,可以看看 php利用smtp类轻松的发送电子邮件 )

上网找了n多资料后终于找到了解决方案,不是smtp类的问题,而就是linux配置的问题。原来是服务器的php.ini 禁用了fsockopen函数。

打开空间下的php.ini文件,linux空间一般都可以自定义php.ini,所以根目录下面一般会有这个文件。

有两个地方可能禁用此函数:

1. allow_url_fopen = On 查看等于后面是否为 ON,如果为OFF时函数将被禁用

2. disable_functions = fsockopen pfsockopen (我的就是这样)这里应该去掉前面的“fsockopen”。使之变成:disable_functions = pfsockopen

改过之后,保存,再重新刷新页面,就发现在linux下能成功利用smtp类发送电子邮件了。感谢网友分享的方法,问题终于得到了解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值