这个错误说明虚拟主机不支持PHPMailer默认调用的fsockopen函数,找到class.smtp.php文件,搜索fsockopen,代码如下:
// connect to the smtp server
$this->smtp_conn = @fsockopen($host,// the host of the server
$port,// the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
方法1:将fsockopen函数替换成pfsockopen函数
首先,在php.ini中去掉下面的两个分号
;extension=php_sockets.dll
;extension=php_openssl.dll
然后重启一下
因为pfsockopen的参数与fsockopen基本一致,所以只需要将@fsockopen替换成 @pfsockopen就可以了。
方法2:使用stream_socket_client函数
一般fsockopen()被禁,pfsockopen也有可能被禁,所以这里介绍另一个函数 stream_socket_client()。
stream_socket_client的参数与fsockopen有所不同,所以代码要修改为:
代码如下 复制代码
$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval); ok更多问题到问题求助专区http://bbs.houdunwang.com/
http://houdunwang.com/lesson.html
那代码应该没问题吧