一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

WordPress3.8无法使用smtp发送邮件问题解决教程

时间:2014-09-23 编辑:简简单单 来源:一聚教程网

小编先是碰到发邮件提示发送邮件出现Could not connect to SMTP host的解决办法了,解决之后发现可是wordpress现在都4.0版本了,上面的方法根本不够用,肯定解决不了办法。了,下面再往下看

发送邮件出现“不能连接SMTP服务器.”(Error: Could not connect to SMTP host)的原因是fsockopen()被禁用。
如果服务器禁用了fsockopen()函数就会导致PHPmailer连接远程SMTP服务器就会出现上述错误。
明凯使用的是Configure SMTP插件进行测试的,结果如下。
smtp
下面给出解决方法:
如果是自己的服务器,请直接编辑php.ini在disable_function中找到fsockopen并删除,重启php试试吧。
如果无法更改php.ini,请用pfsockopen()函数直接替换掉 fsockopen()
如果pfsockopen函数被禁用的话,换其他可以操作Socket函数来代替, 如stream_socket_client()
举例wordpress发送邮件:
找到wp-includes/class.smtp.php 文件

@fsockopen 改成 @pfsockopen

 

 

 代码如下 复制代码

$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
// verify we connected properly
改成

$this->smtp_conn = @pfsockopen(
$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
// verify we connected properly

以上方法只适用于3.8以下的版本,也是网上所有的解决方法。3.9以后的版本按照上面改是不会有结果的。

3.8以上的版本由于安全问题去除了@pfsockopen函数。

 

而网上的方法都是全部抄来抄去根本没有效果。
在此明凯自己研究后发现了下面的问题及解决方法。
3.8版本使用的是fsockopen发送socket。以后的版本使用的是 stream_socket_client发送socket。
php.ini默认禁用了stream_socket_client这个函数。
3.8以前的版本:
smtp1
3.8以后的版本:
smtp2
大家可以看看phpinfo的信息:
smtp3
这个函数是禁用的。
大家可以修改php.ini:
smtp4
删除掉disable_functions里面的stream_socket_client就可以了。
smtp5
大家感受下。看下效果

热门栏目