万网主机禁用了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函数:
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大学问答中心
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/248117.html