解决wordpress使用万网主机不能发邮件问题

万网主机禁用了mail()函数,导致默认使用mail()函数的wordpress程序无法发送邮件,站长只好选择SMTP来发送邮件(如wordpress SMTP插件:WP Mail SMTP),可这还没完,wordpress的SMTP发送方式使用的是steam_connect_client,而万网主机提供的是fsockopen,因此要顺利发送邮件,还要修改wordpress程序的源文件class-smtp.php,把wordpres的SMTP发送方式改为fsockopen以迎合万网主机。

1、万网主机fsockopen函数默认是关闭的,在万网主机管理面板中开启fsockopen函数:

解决wordpress使用万网主机不能发邮件问题

2、编辑wp-include/目录下的class-smtp.php文件,找到以下代码:

1
2
3
4
5
6
7
8
9
$socket_context = stream_context_create($options);
$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);

替换为以下代码:

1
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);

提示:QQ邮箱偶尔还是不能发送邮件,163邮箱测试没有问题。

提醒:由于该方法修改了wordpress程序的源文件,因此每次升级wordpress后都需要进行修改。

方法整理自wordpress大学问答中心

发表留言