PHPMailer | 您所在的位置:网站首页 › host和post › PHPMailer |
作者 Postbird 写了582篇文章,回复686人, PHPMailer - Could not connect to SMTP host 解决方法 评论:1 · 阅读:15841 · 喜欢:0最近使用PHPmailer发送邮件一直出现错误,显示一直无法连接到SMTP服务器。 而这个错误在之前从来没有遇到过,我用的配置也是完全没有问题,SMTP服务器、端口、地址、用户名、授权码什么的都没问题,但是无论怎么调试错误一直存在,无法发送邮件。 一、错误错误信息如下: PHPmailer can not connect to smtp server。 拍错顺序如下: smtp服务器是否能够连接,是否正确smtp用户名和授权码是否正确 目前基本上都是使用授权码,而非密码ssl协议的端口是否正确 SSL465通用可以查一下自己的邮箱SMTP ssl端口:http://blog.csdn.net/xinglu31/article/details/18448885不建议使用25端口发送邮件phpinfo();看一下系统的socket和openssl是否开启二、debug错误开启debug,然后追踪trace,发现报错信息如下: PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in class.smtp.php on line 327.错误原因: php引入ssl验证,如果SSL配置不正确,则会出现此错误。 可以通过将SMTPOptions属性设置为不验证证书来恢复旧的行为。 【以前使用25端口发送,不存在SSL证书验证问题,现在强制SSL安全,而服务器没有安装SSL证书,自然无法验证,因此如果https网站,则不会出现该问题。】 三、解决错误在代码中对 $mail->SMTPOptions进行设置。 $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );将SMTPOptions属性设置为不验证证书来恢复旧的行为 更多内容可以在stack overflow查看: http://stackoverflow.com/questions/26827192/phpmailer-ssl3-get-server-certificatecertificate-verify-failed/ 文章已经结束啦 标签:phpphpmailer文章版权:Postbird-There I am , in the world more exciting! 本文链接:http://www.ptbird.cn/phpmailer-can-not-connect-to-smtp-host.html 转载请注明文章原始出处 ! 扫描二维码,在手机阅读! 赞 | 0 赏 |
CopyRight 2018-2019 实验室设备网 版权所有 |