【问题标题】:PHPMailer SMTP Error: Could not connect to SMTP hostPHPMailer SMTP 错误:无法连接到 SMTP 主机
【发布时间】:2016-05-05 22:05:20
【问题描述】:

PHPMailer 出现一个奇怪的问题,显示 SMTP 连接错误,如下所示。什么可能导致这种情况?它在我使用 Gmail SMTP 服务器时有效,也适用于本地邮件功能。服务器上的 Roundcube 发送正常。它似乎只是 PHPMailer。据我所知,所有设置都是正确的。它使用 TLS,我尝试了不同的端口。正确的端口显示以下错误:

2016-05-05 21:58:47 Connection: opening to mail.myserver.com:587, timeout=300, options=array (
                                      )
2016-05-05 21:58:47 Connection: opened
2016-05-05 21:58:52 SMTP -> get_lines(): $data is ""
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "220 sys.myserver.com ESMTP Exim 4.72 Thu, 05 May 2016 17:58:50 -0400
                                      "
2016-05-05 21:58:52 SERVER -> CLIENT: 220 sys.myserver.com ESMTP Exim 4.72 Thu, 05 May 2016 17:58:50 -0400
2016-05-05 21:58:52 CLIENT -> SERVER: EHLO localhost
2016-05-05 21:58:52 SMTP -> get_lines(): $data is ""
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250-sys.myserver.com Hello ***********]
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $data is "250-sys.myserver.com Hello cpc68331-cdif16-2-0-cust906.5-1.cable.virginm.net [86.3.207.139]
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250-SIZE 52428800
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $data is "250-sys.myserver.com Hello cpc68331-cdif16-2-0-cust906.5-1.cable.virginm.net [86.3.207.139]
                                      250-SIZE 52428800
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250-PIPELINING
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $data is "250-sys.myserver.com Hello ***************************]
                                      250-SIZE 52428800
                                      250-PIPELINING
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250-AUTH PLAIN LOGIN
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $data is "250-sys.myserver.com Hello ****************************]
                                      250-SIZE 52428800
                                      250-PIPELINING
                                      250-AUTH PLAIN LOGIN
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250-STARTTLS
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $data is "250-sys.myserver.com Hello ******************]
                                      250-SIZE 52428800
                                      250-PIPELINING
                                      250-AUTH PLAIN LOGIN
                                      250-STARTTLS
                                      "
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "250 HELP
                                      "
2016-05-05 21:58:52 SERVER -> CLIENT: 250-sys.myserver.com Hello ***************]
                                      250-SIZE 52428800
                                      250-PIPELINING
                                      250-AUTH PLAIN LOGIN
                                      250-STARTTLS
                                      250 HELP
2016-05-05 21:58:52 CLIENT -> SERVER: STARTTLS
2016-05-05 21:58:52 SMTP -> get_lines(): $data is ""
2016-05-05 21:58:52 SMTP -> get_lines(): $str is  "220 TLS go ahead
                                      "
2016-05-05 21:58:52 SERVER -> CLIENT: 220 TLS go ahead
2016-05-05 21:58:52 SMTP Error: Could not connect to SMTP host.
2016-05-05 21:58:52 CLIENT -> SERVER: QUIT
2016-05-05 21:58:53 SMTP -> get_lines(): $data is ""
2016-05-05 21:58:53 SMTP -> get_lines(): $str is  "����221 sys.myserver.com closing connection
                                      "
2016-05-05 21:58:53 SMTP -> get_lines(): $data is "����221 sys.myserver.com closing connection
                                      "
2016-05-05 21:58:53 SMTP -> get_lines(): $str is  ""
2016-05-05 21:58:53 SERVER -> CLIENT: ����221 sys.myserver.com closing connection
2016-05-05 21:58:53 SMTP ERROR: QUIT command failed: ����221 sys.myserver.com closing connection


----------


2016-05-05 21:58:53 Connection: closed
2016-05-05 21:58:53 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
{"success":1,"id":"3391"}

【问题讨论】:

    标签: email smtp phpmailer


    【解决方案1】:

    the troubleshooting guide 对此进行了介绍。它在 STARTTLS 之后立即失败,这通常表明您的邮件服务器正在发布无效的 SSL 证书,或者过期、自签名或与主机名不匹配。真正的解决方案是修复证书,但指南会告诉您如何禁用验证。

    大概 gmail 正在工作,因为它没有损坏的 SSL 配置,并且roundcube 可能在没有 TLS 的情况下提交到 localhost(通过mail()),所以它不会遇到问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多