云虚拟主机的WordPress程序发信失败

问题描述

云虚拟主机的WordPress程序发信失败。

问题原因

WordPress程序使用的不是fsockopen函数发信,而是使用stream_socket_client函数发信,如果PHP函数在云虚拟主机中被禁用,则会导致发信失败。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 可以通过修改WordPress程序中wp-includes/class-smtp.php文件,找到以下内容。
        $this->smtp_conn = @stream_socket_client(            
            $host . ":" . $port,            
            $errno,            
            $errstr,            
            $timeout,            
            STREAM_CLIENT_CONNECT,            
            $socket_context        
        );  
    系统显示类似如下。
    TB1vrlqHpXXXXaDXFXXXXXXXXXX.png
  2. 使用/***/ 将以上内容注释,使用以下内容代替该部分。
    $this->smtp_conn = fsockopen($host, $port, $errno, $errstr);
    系统显示类似如下。
    TB1MqXdHpXXXXXdaXXXXXXXXXXX.png
    说明:WordPress4.3.1版本已经支持自动检测是否支持stream_socket_client函数,如果不支持会自动使用fsockopen进行发信,因此4.3.1之后版本不需要在修改此文件,在WordPress应用中心安装Easy WP SMTP Settings插件,配置好就可以直接发送邮件了。

适用于

  • 云虚拟主机

 

阿里云首页 云虚拟主机 相关技术圈