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

原创 2015年11月18日 19:40:55

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PHPCMS 2008 V9的 发邮件函数

PHPCMS 2008 发邮件类 $sendmail = load('sendmail.class.php'); $sendmail->send('wapffu@qq.com','你好', '内容...

发送邮件给某人:mailto标签

mailto标签 1.标签最简式 联系站长 2.标签帮你填抄送地址 联系站长 3.标签帮你填暗送地址 联系站长 4.暗,抄 联系站长 5.标签帮你填主题 有话直说 6.填邮件内容...
  • zsj523
  • zsj523
  • 2013年09月11日 15:44
  • 14381

phpcms v9 表单向导 在线留言后,发送邮件(含留言内容)

修改 phpcms\modules\formguide index.php 找到 foreach ($mails as $m) { sendmail($m, L('tips'), ...

安装phpcms v9时空间不支持fsockopen函数怎么办?

由于最近多种cms程序爆出各种各样的漏洞,其中由于fsockopen引起的漏洞入侵尤其的多,所以现在很多的空间商都关闭了fsockopen函数,而在安装phpcm v9的时候,会自动检测空间的相应设置...
  • zsj523
  • zsj523
  • 2014年04月10日 16:23
  • 3435

fsockopen pfsockopen stream_socket_client

fsockopen pfsockopen stream_socket_client 有时间研究这三个函数具体用法

PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法

这篇文章主要介绍了PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法,一是使用stream_socket_client函数代替,二是写一个类似fsockopen功能的自定义函数...

关于发送邮件出现no smtp MX only错误的解决办法

今天在服务器上搭建了一个SMTP虚拟服务器,用于发送电子邮件。本来原先使用的是126的邮箱smtp服务进行发送,但是后来才发现这个服务每天的发送量是有限制的,所以也就作罢,自己搭一个SMTP服务器来发...

【JavaMail开发】使javamail-1.4.2 发送邮件时中文附件乱码或显示"??"的解决办法

使用mail-1.4.1.jar发送邮件时中文附件乱码或显示"??"的解决办法.
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:空间商关闭fsockopen和pfsockopen函数导致phpcms 无法发送邮件的解决办法
举报原因:
原因补充:

(最多只允许输入30个字)