PHPMailer 您所在的位置:网站首页 host和post PHPMailer

PHPMailer

#PHPMailer| 来源: 网络整理| 查看: 265

postbird

作者 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属性设置为不验证证书来恢复旧的行为

p1.jpg

更多内容可以在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 实验室设备网 版权所有