关闭

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

741人阅读 评论(0) 收藏 举报
分类:

文章来源:合肥笑缘信息技术有限公司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函数也禁用了,好吧,别折腾了,估计空间商也不咋地,赶紧换空间商吧。


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18502次
    • 积分:316
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类