解决升级PHP7.1后,发邮件时提示“fsockopen(): …

2018-06-22 05:38:00来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

把项目环境升级到PHP7.1后,发现在不使用SSL时可以使用IP发邮件,可设置成SSL时就只能使用hostname发送,PHP提示的错误信息大致意思是说,IP与hostname无法通过SSL验证,修改ci框架中Email类第2061行,结果又可以正常发邮件了,故作此记录。

// 修改的代码
$ctx = stream_context_create(array(
    'ssl' => array(
        'verify_peer_name' => FALSE,
    )
));
$this->_smtp_connect = stream_socket_client(
    $ssl . $this->smtp_host . ':' . $this->smtp_port, 
    $errno,
    $errstr, 
    $this->smtp_timeout,
    STREAM_CLIENT_CONNECT,
    $ctx
);

// 注释原来的代码
// $this->_smtp_connect = @fsockopen($ssl.$this->smtp_host,
//                     $this->smtp_port,
//                     $errno,
//                     $errstr,
//                     $this->smtp_timeout);

!!!根据官网及多数网站建议使用hostname代替IP!!!

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:SourceTree Win10 安装不成功解决过程记录

下一篇:[日常] nginx与负载均衡