我正在尝试使用javaxmail通过for循环发送500多封电子邮件 - 没有垃圾邮件,电子邮件地址已知并经过认证。
目的是在发送(Thread.sleep(...))之间有一点时间延迟(1 - 5秒),因此邮件不会自动进入垃圾邮件文件夹。但是经过一段时间的测试后发送到我自己的电子邮件地址,我不断收到这个错误:
com.sun.mail.smtp.SMTPSendFailedException:554 5.7.0您的留言 无法发送。允许传出的数量限制 消息被超过。稍后再试。
我正在使用自己的smtp服务器。
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.port", "25");
我想知道“稍后再试”的时间跨度是多长时间?
有人知道这个限制吗?
任何建议如何避免这种情况都会有所帮助。
答案 0 :(得分:3)
在大多数情况下,您应该尽量避免发送大量邮件(垃圾邮件过滤器无论如何都会对大量邮件产生歧视),但在您的情况下,答案更为简单。分布式邮件处理是首选,具有基于时间的限制率等。
您可能遇到的问题是(如errormsg所示)您尝试超出外发邮件号码的限制。 (您可以通过检查getCommand and getReturnCode来获取更多信息。)如果您使用带有policyd的POSTFIX,则是传出邮件限制配置的示例:
您可以通过重新配置SMTP服务器来“修复”此问题。我的建议是(为了避免进入阻止列表)拆分整个电子邮件发送过程:
在大多数情况下,这些限制是为了您自己的安全。如果发生软件错误等,那些会阻止您进入黑名单。
答案 1 :(得分:1)
为了保持系统健康和帐户安全,用户可以发送的邮件数量有限。限制限制每小时发送的邮件数和每封邮件的收件人数。达到其中一个限制后,用户无法发送新邮件,但他们仍然可以访问自己的帐户并接收收到的电子邮件。
各种ISP提供商给出了限制。您可以从这里查看:SMTP Sending Limit and Email Rate Limits for ISPs - Verizon, Comcast, EarthLink, etc。
在Plesk Documentation中,您将获得Custom Limits for Service Plans
,Limits for Subscriptions
,Limits for Domains
和Limits for Mailboxes
。
将成功发送100条消息,但从101消息开始 对于同一小时,Webmail将显示以下错误。
答案 2 :(得分:0)
这里有很多人都有同样的问题,许多解决方案的许多信息都在尝试中。 https://productforums.google.com/forum/#!topic/gmail/yrEDNJ3fChs
此处还有批量发件人指南的链接: https://support.google.com/mail/answer/81126?hl=en