1

我正在尝试使用来自 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 服务器的访问速率是否有任何限制?我应该在每个请求之间引入延迟吗?

4

1 回答 1

2

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

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

于 2013-11-05T08:01:11.090 回答