空间商关闭fsockopen和pfsockopen函数导致phpcms 无法发送邮件的解决办法

文章来源:合肥笑缘信息技术有限公司http://www.xyservice.com        如果转载,请注明出处,否则请勿转载,谢谢!

大家知道,虚拟主机因为其特殊性,Web服务的入门级产品有很多功能受到空间商的限制,比如某些服务商为了保证安全会禁用fsockopen和pfsockopen函数,但是这样一来,依赖fsockopen函数发邮件的phpcms就无法正常发送邮件了,合肥网站制作公司合肥笑缘信息技术有限公司教您如何解决phpcms无法发送邮件的问题

         我们要用到stream_socket_client这个函数,关于这个函数的详细用法请自行查找,不在本篇讲述范围,闲话少说,直接讲解决办法

         第一步:打开文件phpcms/libs/functions/mail.func.php

         第二步:找到下面这段代码(大概在第78行附近)

 

	if(!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) {
		runlog('SMTP', "($mail[server]:$mail[port]) CONNECT - Unable to connect to the SMTP server", 0);
		return false;
	}

第三步:将fsockopen($mail['server'],$mail['port'], $errno, $errstr, 30)替换为下面的代码:

stream_socket_client($mail['server'].':' .$mail['port'], $errno, $errstr, 30)


第四步:保存

 

好了,到这里,应该就可以发送邮件了,如果还是不行,请检查以下两点原因:

1.smtp服务器配置是否正确,用户名密码是否正确

2.邮件服务商是否允许远程发送邮件,邮箱是否开通了smtp服务(QQ邮箱默认就是关闭的),另外QQ邮箱需要设置独立密码并开通SMTP服务才可以远程调用。

3.如果以上几点都没问题,问问空间商,是不是连stream_socket_client函数也给禁用了,如果空间商连stream_socket_client函数也禁用了,好吧,别折腾了,估计空间商也不咋地,赶紧换空间商吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值