2013-11-05 49 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服務器可以具有垃圾郵件防護(默認情況下)。

相關問題