Java Gmail SMTP服务器请求/秒有限制吗?

Java Gmail SMTP服务器请求/秒有限制吗?,java,smtp,gmail-pop,Java,Smtp,Gmail Pop,我试图从java(部署在tomcat中)使用Gmail SMTP服务器发送电子邮件。在执行负载测试时,如果每秒发送到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 Gma

我试图从java(部署在tomcat中)使用Gmail SMTP服务器发送电子邮件。在执行负载测试时,如果每秒发送到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服务器的访问速率是否有任何限制?我应该在每个请求之间引入延迟吗?

经过一些搜索之后,如果你想继续使用谷歌的SMTP服务器,在每个电子邮件发送之间引入延迟是一个不错的选择。然而,从我所读到的,这些SMTP服务器需要一个显著的延迟,以便它们不会强制关闭您的连接并主动删除新连接(所谓的显著延迟,我指的是超过60秒的延迟)。通过这种方式,负载测试是不可能的:现代计算机应该能够在60秒内处理发送电子邮件的过程,而不会出现任何问题


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

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