阿里云万网云虚拟主机无法发送SMTP的解决办法

发表于

最简单的解决方法:使用WP Mail SMTP插件,不要使用SSL加密,否则无法连接SMTP服务器。用25端口连接,可以成功。

以下是网上转载的,可以参考,但其实没什么用,如果使用SSL,在阿里云万网虚拟主机上也是无法连接SMTP服务器的。

==================================================

万网主机WordPress通过fsockopen函数调用SMTP来发送邮件

万网主机的配置和速度还是比较给力的,只不过限制了一部分函数,比如mail()函数。大家会发现就算通过smtp插件都无法发送邮件,那么怎么解决。

万网没有开启stream_socket_client函数导致没有办法通过 WordPress 的SMTP 接口发邮件,经过查看了主机的php配置后,发现有个函数选项fsockopen可以选择开启,fsockopen函数可以用来发邮件。

但是WordPress默认调用的是mail()函数来发送邮件,我们需要通过修改wp-includes/class-smtp.php文件来达到我们想要的功能,即通过fsockopen来发送邮件。

修改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);

另外,不要忘记去主机管理后台,将php.ini的设置里边的选项开启,PHP函数fsockopen设置为启动。