大部分使用虚拟主机的Wordpress用户会遇到,主机商为了安全把邮件函数fsockopen和stream_socket_client给禁用了的 现象,SMTP插件也发不了邮件,所以邮件功能几乎用不了。但是由于空间速度的优越性,不忍心放弃。遂写出解决之道。大家都知道,邮件功能对 wordpress的重要性,一个wordpress没有邮件功能几乎是半残的。
解决办法就是:fsockopen函数用pfsockopen函数替代。一般的来说,如果这家主机商把fsockopen函数禁用了,八成也会禁用stream_socket_client函数。解决办法就是修改smtp发邮件调用的wp-includes/class-smtp.php文件,找到它,搜索stream_socket_client,只有一处地方使用了该函数:
$this ->smtp_conn = @stream_socket_client(
$host . ":" . $port ,
$errno ,
$errstr ,
$timeout ,
STREAM_CLIENT_CONNECT,
$socket_context
);
把这一块代码改成:
$this ->smtp_conn = @ pfsockopen (
$host ,
$port ,
$errno ,
$errstr ,
$timeout
);
然后去后台插件重新启用SMTP插件,最保险的方法是重新设置一遍参数,再点击邮件发送测试,必定可以发送了,如还不能发送,那就不是这几个函数的问题了。
转载请注明:小康的个人主页~ » 虚拟主机发不能发送邮件解决办法(邮件函数禁用问题)