原文链接:http://www.dmeng.net/tougao-20141208.html

由于部分主机(如万网)没有开启 stream_socket_client 函数导致没有办法通过 WordPress 的 SMTP 接口发邮件,而一般主机是开放 fsockopen 函数的,所以通过修改代码文件解决这个问题。

WordPress 没有提供钩子可以修改,只能直接修改代码了。

wp-includes/class-smtp.php

$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);

以上部分注释掉,使用以下代码代替

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

完毕。