【问题标题】:Mandrill smtp failuresMandrill smtp 失败
【发布时间】:2015-02-04 06:12:18
【问题描述】:

我很难让 mandrill SMTP 可靠地发送。或者更准确地说,每次都进行身份验证。当它确实对电子邮件进行身份验证时,它可以正常工作

我可以很好地运行发送脚本,然后一个接一个地连续运行 2 或 3 次。然后它不会进行身份验证。但有时它不会立即进行身份验证。

我想也许只是因为它认为我在滥用它并在短时间内阻止了我。

但我可以看到,自从我开始为我的网站使用 mandrill SMTP 后,它的身份验证失败率是正常的。

尝试了域上的 SPF 和 dmik 文本属性。这没有帮助

环顾四周,我看不到其他人有这个问题,但按照这个速度,我当然不能将 mandrill 用于 SMTP。

任何人都可以提出为什么会发生这种情况的原因吗?我的凭据是 100% 准确的,而且我认为我根本不会发送很多电子邮件。

使用另一个 mandrill 帐户在另一台服务器上遇到同样的问题。

注意:我正在使用 phpmailer

示例调试错误:

2014-12-06 08:52:59 Connection: opening to smtp.mandrillapp.com:587, t=300, opt=array (
)
2014-12-06 08:52:59 Connection: opened
2014-12-06 08:52:59 SERVER -> CLIENT: 220 smtp.mandrillapp.com ESMTP
2014-12-06 08:52:59 CLIENT -> SERVER: EHLO fakemail.com
2014-12-06 08:52:59 SERVER -> CLIENT: 250-ip-10-243-6-11
250-PIPELINING
250-SIZE 26214400
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250 8BITMIME
2014-12-06 08:52:59 CLIENT -> SERVER: AUTH LOGIN
2014-12-06 08:52:59 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2014-12-06 08:52:59 CLIENT -> SERVER: bWVAZG91Z25vcmZvbGsuY29tLmF1
2014-12-06 08:52:59 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2014-12-06 08:52:59 CLIENT -> SERVER: REDACTED
2014-12-06 08:53:01 SERVER -> CLIENT: 435 4.7.8 Error: authentication failed: UGFzc3dvcmQ6
2014-12-06 08:53:01 SMTP ERROR: Password command failed: 435 4.7.8 Error: authentication failed: UGFzc3dvcmQ6
2014-12-06 08:53:01 CLIENT -> SERVER: QUIT
2014-12-06 08:53:01 SERVER -> CLIENT: 221 2.0.0 Bye
2014-12-06 08:53:01 Connection: closed
2014-12-06 08:53:01 SMTP connect() failed.
Mailer Error: SMTP connect() failed.

正确发送示例:

2014-12-06 08:52:33 Connection: opening to smtp.mandrillapp.com:587, t=300, opt=array (
)
2014-12-06 08:52:33 Connection: opened
2014-12-06 08:52:33 SERVER -> CLIENT: 220 smtp.mandrillapp.com ESMTP
2014-12-06 08:52:33 CLIENT -> SERVER: EHLO fakemail.com
2014-12-06 08:52:33 SERVER -> CLIENT: 250-ip-10-250-28-124
250-PIPELINING
250-SIZE 26214400
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250 8BITMIME
2014-12-06 08:52:33 CLIENT -> SERVER: AUTH LOGIN
2014-12-06 08:52:33 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2014-12-06 08:52:33 CLIENT -> SERVER: bWVAZG91Z25vcmZvbGsuY29tLmF1
2014-12-06 08:52:33 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2014-12-06 08:52:33 CLIENT -> SERVER: REDACTED
2014-12-06 08:52:33 SERVER -> CLIENT: 235 2.7.0 Authentication successful
2014-12-06 08:52:33 CLIENT -> SERVER: MAIL FROM:<me@fakemail.com>
2014-12-06 08:52:33 SERVER -> CLIENT: 250 2.1.0 Ok
2014-12-06 08:52:33 CLIENT -> SERVER: RCPT TO:<me@fakemail.com>
2014-12-06 08:52:33 SERVER -> CLIENT: 250 2.1.5 Ok
2014-12-06 08:52:33 CLIENT -> SERVER: DATA
2014-12-06 08:52:33 SERVER -> CLIENT: 354 End data with <CR><LF>.<CR><LF>
2014-12-06 08:52:33 CLIENT -> SERVER: Date: Sat, 6 Dec 2014 19:52:33 +1100
2014-12-06 08:52:33 CLIENT -> SERVER: To: Test <me@fakemail.com>
2014-12-06 08:52:33 CLIENT -> SERVER: From: Test <me@fakemail.com>
2014-12-06 08:52:33 CLIENT -> SERVER: Subject: Here is the subject
2014-12-06 08:52:33 CLIENT -> SERVER: Message-ID: <0a8f3c40575be98668d8ea6fb03f4bfc@fakemail.com>
2014-12-06 08:52:33 CLIENT -> SERVER: X-Priority: 3
2014-12-06 08:52:33 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/)
2014-12-06 08:52:33 CLIENT -> SERVER: MIME-Version: 1.0
2014-12-06 08:52:33 CLIENT -> SERVER: Content-Type: multipart/alternative;
2014-12-06 08:52:33 CLIENT -> SERVER:   boundary="b1_0a8f3c40575be98668d8ea6fb03f4bfc"
2014-12-06 08:52:33 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: --b1_0a8f3c40575be98668d8ea6fb03f4bfc
2014-12-06 08:52:33 CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: This is the body in plain text for non-HTML mail clients
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: --b1_0a8f3c40575be98668d8ea6fb03f4bfc
2014-12-06 08:52:33 CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: This is the HTML message body <strong>in bold!</strong>
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: --b1_0a8f3c40575be98668d8ea6fb03f4bfc--
2014-12-06 08:52:33 CLIENT -> SERVER:
2014-12-06 08:52:33 CLIENT -> SERVER: .
2014-12-06 08:52:33 SERVER -> CLIENT: 250 2.0.0 Ok: queued as 109BC180070
2014-12-06 08:52:33 CLIENT -> SERVER: QUIT
2014-12-06 08:52:33 SERVER -> CLIENT: 221 2.0.0 Bye
2014-12-06 08:52:33 Connection: closed
Message sent!

我尝试每 5 秒发送一次电子邮件。 10 次中有 3 次没有发送。

1 分钟后,我每 10 秒尝试一次。 10 个中有 8 个没有发送。

【问题讨论】:

  • 您能否提供您遇到的身份验证错误的详细信息,并记录您在遇到错误时连接的 IP 地址的详细信息?一般来说,如果您能够记录每个连接的完整 SMTP 对话,这通常可以提供确定正在发生的事情所需的详细程度或提供一个良好的起点。
  • 我的错,请参阅添加的错误代码。感谢您的回复,很想用 Mandrill,就是无法理解这个问题
  • 更新到最新的 phpmailer - SMTPDebug = 3
  • 我编辑了调试信息以编辑密码信息,但为了安全起见,我建议在任何情况下都禁用该 API 密钥。不过,看起来您确实正确地连接到了 Mandrill 服务器。您能否检查一下看起来像这样的行:2014-12-06 08:52:59 SERVER -&gt; CLIENT: 250-ip-10-243-6-11 对于所有失败的发送是否相同,和/或您是否看到任何成功发送的相同 IP(或任何模式,因为这显示了哪个 Mandrill您要连接的服务器)?

标签: smtp phpmailer mandrill


【解决方案1】:

由于它是断断续续的,最终看起来肯定是个问题。设置 SMTPDebug = 3 以查看整个 SMTP 会话。

从您给出的片面来看,您似乎没有使用 TLS,并且在启动 TLS 之前通常不允许身份验证,尽管我可以看到服务器说它会这样做它。我认为允许没有 TLS 的身份验证是一个安全漏洞,当然不是你需要允许的。

还要确保您使用的是最新的 PHPMailer (5.2.9+)。

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 2017-10-19
    • 2015-09-13
    • 2023-04-10
    • 2019-03-12
    • 2016-01-09
    • 2015-06-05
    • 2019-01-20
    • 2020-09-24
    相关资源
    最近更新 更多