2023最新处理阿里云虚拟主机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\PHPMailer\SMTP.php,在386-394 行位置,查找以下代码:
$socket_context = stream_context_create($options);
set_error_handler([$this, 'errorHandler']);
$connection = 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 版本,就需要重新进行修改,切记!!!
阅读剩余
THE END