批量电子邮件失败,出现 421 4.7.0 稍后再试
Posted
技术标签:
【中文标题】批量电子邮件失败,出现 421 4.7.0 稍后再试【英文标题】:Bulk Emails failed with 421 4.7.0 Try again later 【发布时间】:2018-01-27 03:35:29 【问题描述】:我需要在我的组织中发送批量电子邮件。我是 Java Mail API 并使用以下配置发送邮件。
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
邮件#1 发件人:abc@org.com 致:emp1@org.com
邮件#2 发件人:abc@org.com 致:emp2@org.com
...
邮件在循环中触发。
问题: 前 80 封电子邮件已成功发送。从第 81 封邮件开始,我在 10-15 封电子邮件中出现以下错误,后来成功发送了几封邮件。
在 743 封电子邮件中,400 封失败,343 封成功。
INFO | jvm 1 | 2017/08/18 07:25:54 | com.sun.mail.smtp.SMTPSendFailedException: 421 4.7.0 Try again later, closing connection. (MAIL) xsdsfasdsa.96 - gsmtp
INFO | jvm 1 | 2017/08/18 07:25:54 |
INFO | jvm 1 | 2017/08/18 07:25:54 | at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
INFO | jvm 1 | 2017/08/18 07:25:54 | at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
INFO | jvm 1 | 2017/08/18 07:25:54 | at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
-
帮我解决它。
smtp.gmail.com 上是否有任何特定的每分钟限制?
谢谢, 林蛙
【问题讨论】:
“批量电子邮件”不是指“有多个收件人的电子邮件”,而不是“大量电子邮件”吗? 邮件包含个人详细信息,因此我无法与多个收件人一起发送邮件 好的。查看google's guidelines 进行批量发送,看看您是否可以解决其中任何一个问题。 @ranafeb14 这个答案有帮助吗?给你? 【参考方案1】:是的,我认为通过 Gmail 发送 SMPT 邮件有每分钟的限制(根据我的经验,80-100 周围的其他人大约有 80 条)。但这不是 100% 的硬限制,而是在 Gmail 认为到期时强制执行的某种软限制。
首先,在 G Suite 管理区域检查您的消息队列。如果队列很大并且还在增长,那么您发送的速度太快了。
一些有用的链接:
G 套件SMTP Error Reference 邮箱Bandwidth limits for accounts Gmail sending limits in G Suite Bulk Senders Guidelines当你遇到错误时,没有进一步的解释是什么问题
421, "4.7.0", 稍后再试,关闭连接。
一般建议:
您可以使用池化 SMTP,例如 https://nodemailer.com/smtp/pooled/不要发送太快 一次发送的电子邮件不要超过 50 封 不要假设 Gmail 是本地系统。这是一项外部服务,它使用复杂的方法使电子邮件在全球范围内可用,扩展了一项具有 42 年历史的远非完美的发明。 不要尝试愚蠢的事情,否则 Gmail 会惩罚你。如果使用池化,那么 Nodemailer 会保持固定数量的连接 打开并在连接可用时发送下一条消息。 当您有大量消息时,它最有用 想要分批发送,或者您的提供商只允许您使用 少量并行连接。
道德:如果发送大量电子邮件,最好使用自己的电子邮件服务器。
【讨论】:
以上是关于批量电子邮件失败,出现 421 4.7.0 稍后再试的主要内容,如果未能解决你的问题,请参考以下文章