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

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

贡献者:

KB小秘书

 · 

更新时间:2020-06-28 18:10:23

提示: 这是一篇由阿里云ACE开发者(Alibaba Cloud Engineer)贡献,针对特定用户问题发布的文章。文档的内容以原稿呈现,阿里云对于文档内容不做任何形式的承诺。阿里云有权在未经通知的情形下对文档内容做出任何形式的修改。

问题描述

云虚拟主机的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插件,配置好就可以直接发送邮件了。

适用于

  • 云虚拟主机

 

  • 249

    发布KB

  • 656

    回答问题

  • 12

    粉丝数