阿里云虚拟主机WordPress无法发送邮件解决方案

主页 \ 影音播放 \ 阿里云虚拟主机WordPress无法发送邮件解决方案

因阿里云虚拟主机禁用了 mail()函数,导致 WordPress 系统无法使用默认 mail()函数发送邮件,即便改用 SMTP 插件也无法成功发送(因为阿里云虚拟主机提供的是 fsockopen,而 SMTP 所使用的是 steam_connect_client),因此想要实现 SMTP 成功发送邮件,就要修改 wordpress 程序源文件 class-smtp.php,把 wordpres 的 SMTP 发送方式改为 fsockopen 方式。

1、登录阿里云主机管理控制台,进入:站点信息-高级环境设置-php.ini 设置,PHP 函数 fsockopen 设置:启用

2、修改 wordpress 系统文件,打开 /wp-includes/class-smtp.php,在 274-283 行位置,查找以下代码:

$socket_context = stream_context_create($options);
//Suppress errors; connection failures are handled at a higher level
$this->smtp_conn = @stream_socket_client(
     $host . ":" . $port,
     $errno,
     $errstr,
     $timeout,
     STREAM_CLIENT_CONNECT,
     $socket_context
);

替换为以下代码:

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

然后使用 Easy WP SMTP 或 WP MAIL SMTP 这类 SMTP 发送邮件的插件,配置好一般就可以了。
特别注意:由于这个方法是直接修改了 WordPress 的核心代码,一旦升级了 WordPress 版本,就需要重新进行修改,切记!!!

ThemeBest
站长: ThemeBest

相关文章

大神,别默默的看了,快来点评一下吧!:)