【问题标题】:Is there any limit to Gmail SMTP server requests/ sec?Gmail SMTP 服务器请求/秒是否有任何限制?
【发布时间】:2013-11-05 07:37:45
【问题描述】:

我正在尝试使用来自 java 的 Gmail SMTP 服务器发送电子邮件(部署在 tomcat 中)。在进行负载测试时,如果对 SMTP 服务器的请求/秒数增长更多(>20),我会收到此异常

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;

nested exception is:java.net.ConnectException: Connection timed out

Gmail SMTP 服务器的访问速率是否有任何限制?我应该在每个请求之间引入延迟吗?

【问题讨论】:

  • 你可以,但你想做什么?向很多人发送邮件?如果是这样,您应该使用专门的邮件服务而不是 Gmail,因为您会遇到问题(例如进入 Google 的黑名单)。
  • 当用户注册到我的应用程序时,我正在发送验证电子邮件,其中包含一些文本和验证链接。在实时情况下,我通过性能测试产生的负载非常少见。我只是想确保我的应用程序是稳定的,但没想到它会成为 SMTP 服务器的问题。
  • 如果您想对您的应用程序进行压力测试,我建议您配置一个临时 SMTP 服务器,以防止 Google 将您的 IP 地址标记为垃圾邮件来源(请参阅我的回答)。

标签: java smtp gmail-pop


【解决方案1】:

经过一番搜索,如果您想继续使用 Google 提供的 SMTP 服务器,则可以在每封电子邮件发送之间引入延迟。但是,根据我的阅读,这些 SMTP 服务器需要显着延迟,以便它们不会强行关闭您的连接并主动丢弃新连接(显着延迟,我的意思是延迟超过 60 秒)。负载测试是不可能的:现代计算机应该能够在 60 秒内处理发送电子邮件而不会出现任何问题。

底线:不要使用 Gmail SMTP 进行负载测试。我建议设置您自己的 SMTP 服务器,您可以使用它,或者可能(暂时)在专业邮件服务处获得一个帐户。但请记住,如果您托管自己的 SMTP 服务器,则您的软件可能会按照应有的方式执行,但 SMTP 服务器可以具有垃圾邮件保护(默认情况下)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2017-01-26
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多