2013-11-05 52 views
1

我正尝试使用Gmail的SMTP服务器发送电子邮件(部署在tomcat中)。当进行负载测试,如果请求/秒到SMTP服务器数量的增长更大(> 20)我得到这个例外Gmail SMTP服务器请求/秒是否有限制?

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服务器接入速率的任何限制?我应该在每个请求之间引入延迟吗?

+2

你可以,但你想要做什么?发送邮件给很多人?如果是这样,你应该使用专门的邮件服务而不是Gmail,因为你会遇到问题(比如登录Google的黑名单)。 – Stefan

+0

当用户注册到我的应用程序中时,我正在发送验证电子邮件,其中包含一些文本和验证链接。实时,我通过性能测试生成的负载非常罕见。我只是想确保我的应用程序是稳定的,但没想到它会变成SMTP服务器的问题。 – Nancy

+0

如果你想压力测试你的应用程序,我会建议配置一个临时的SMTP服务器,以防止Google将你的IP地址标记为垃圾邮件来源(请参阅我的回答)。 – Stefan

回答

2

经过一番搜索之后,如果您想要继续使用Google的SMTP服务器,那么在每封发送的电子邮件之间引入一个延迟是一条路。但是,从我读到的内容来看,这些SMTP服务器需要很长的延迟时间才能让它们不会强行关闭连接并主动丢弃新连接(延迟时间很长,我的意思是延迟时间超过60秒)。负载测试没有这个问题:现代计算机应该能够在60秒内发送电子邮件而没有任何问题。

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

相关问题