AWS SES 发送邮件错误 SMTP 错误:发送大约 1000 封邮件后无法进行身份验证


AWS SES send mail error SMTP Error: Could not authenticate after sending about 1000 mails

我是 AWS SES 的常规用户,我获得了每天 50K 和每秒 28 封邮件的配额, 我通常发送交易邮件,每天大约 1000 封。它工作正常。 但是,这次我想向我的客户发送一些批量促销邮件。 在我发送大约 1000~ 封邮件后,它经常显示"SMTP 错误:无法进行身份验证"。 但是,其中一些仍然正确发送。我收到"SMTP错误:无法进行身份验证"大约30%~50%的电子邮件发送。 我使用 phpMailer 并在 for 循环中发送邮件,发送一封邮件大约需要 3 秒。 看来我没有超过配额或我需要注意的事情?

这是您今天遇到的错误吗?今天早些时候,我在低得多的体积上遇到了类似的问题,根据 aws 状态页面,他们今天遇到了一些问题:

http://status.aws.amazon.com/

对我来说SMTP Error: Could not authenticate听起来不像是真正的错误消息。 事实上,我确定不是,因为SMTP中真正的错误消息总是有一个3位数的代码。

每个命令必须只生成一个回复。

SMTP 回复由三位数字组成(传输为三位 数字字符),后跟一些文本,除非另有说明 在本文档中。 该数字供自动机用于确定 下一步进入什么状态;文本供人类用户使用。 三 数字包含 SMTP 客户端所需的足够编码信息 不检查文本,可以丢弃它或将其传递给 用户(视情况而定)。

— http://www.ietf.org/rfc/rfc2821.txt

听起来您用于SMTP连接的任何工具都在尝试"有用"并向您显示"友好"错误消息,并且丢弃有用的部分以换取简单的"无法进行身份验证"。

找到一种方法来打开您正在使用的SMTP库中的某些调试,以便您可以找出正在发生的实际错误消息,然后您应该对您的问题有一个明显的答案。

没有这个,那就是猜测。

它应该是 SES 中记录的代码之一,每个代码都有特定的原因:

454 Throttling failure: Daily message quota exceeded.  
454 Throttling failure: Maximum sending rate exceeded. 
454 Temporary authentication failure                   
530 Authentication required.
535 Authentication Credentials Invalid
554 Message rejected: Email address is not verified.