您现在的位置: 首页 > 开发编程 > PHP教程 > 正文

解决升级PHP7.1后,发邮件时提示“fsockopen(): Peer certificate CN=`xxx.xx.com' did not match expected CN=`113.x.xx.98”

作者:admin来源:网络浏览:时间:2018-04-08 22:31:37我要评论
分享到
把项目环境升级到PHP7.1后,发现在不使用SSL时可以使用IP发邮件,可设置成SSL时就只能使用hostname发送,PHP提示的错误信息大致意思是说,IP与hostname无法通过SSL验证,修改ci框架中Email类第2061行,结果又可以正常发邮件了,故作此记录。

  1. // 修改的代码 
  2. $ctx = stream_context_create(array
  3.     'ssl' => array
  4.         'verify_peer_name' => FALSE, 
  5.     ) 
  6. )); 
  7. $this->_smtp_connect = stream_socket_client( 
  8.     $ssl . $this->smtp_host . ':' . $this->smtp_port,  
  9.     $errno
  10.     $errstr,  
  11.     $this->smtp_timeout, 
  12.     STREAM_CLIENT_CONNECT, 
  13.     $ctx 
  14. ); 
  15.  
  16. // 注释原来的代码 
  17. // $this->_smtp_connect = @fsockopen($ssl.$this->smtp_host, 
  18. //                     $this->smtp_port, 
  19. //                     $errno, 
  20. //                     $errstr, 
  21. //                     $this->smtp_timeout); 

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

相关热词搜索: