万网等虚拟主机不能SMTP发信的解决方案
[p=30, 2, left]大多数虚拟主机如万网等都禁用了WordPress默认使用的PHP mail()发信函数,那么唯一的选择就是[url=http://www.zhiyanblog.com/tag/smtp]SMTP[/url]发信了,当然[url=http://www.zhiyanblog.com/tag/smtp]SMTP[/url]发信的好处是基本不会被邮件服务商归类为垃圾邮件。由于stream_socket_client函数同样被禁用,导致无法通过WordPress的[url=http://www.zhiyanblog.com/tag/smtp]SMTP[/url]接口发信,只能通过[url=http://www.zhiyanblog.com/tag/fsockopen]fsockopen[/url]函数来发信了。[/p][p=30, 2, left]以万网主机为例,首先要保证在虚拟主机控制台开启了[url=http://www.zhiyanblog.com/tag/fsockopen]fsockopen[/url]函数。[/p][p=30, 2, left]再者,打开wp-includes/class-smtp.php文件,大约202行找到:[/p][list=1][*]$this->smtp_conn =
@stream_socket_client( $host .
":"
. $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context );[/list]
[p=30, 2, left]将上述代码删除或注释掉,改为以下代码:[/p]
[list=1][*]$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);[/list]
[p=30, 2, left]这样即可通过安装SMTP插件发送邮件,注意的是尽量选择SSL加密发信方式。[/p]
页:
[1]