2010-07-27 38 views
1

我有一個進程(消息驅動的Bean),每次發送郵件時都會收到消息。每封郵件的電子郵件少於10個。我打開1個連接到我的Gmail帳戶,並通過該連接發送所有電子郵件。時不時地,我得到Transport.send異常()爲什麼當我通過Javamail發送郵件時,gmail會關閉我的連接

javax.mail.MessagingException: Can't send command to SMTP host; nested exception is:  
    java.net.SocketException: Connection closed by remote host at 
    com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1878) at 
    com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1865) at 
    com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:973) at 
    javax.mail.Transport.send0(Transport.java:193) at 
    javax.mail.Transport.send(Transport.java:120) at 
.... 

是在Gmail關閉,因爲它認爲這是垃圾郵件的連接?我知道gmail的併發連接數量有限制(10),但這看起來不同。會使用連接池有幫助嗎?

回答

0

Gmail在您的TCP/IP連接超時並決定關閉它,或者兩者之間的防火牆檢測到連接閒置並關閉它。

+0

我也這麼想。但沒有閒暇時間。我打開連接和發送電子郵件之間的時間不到30秒。此外,這種情況偶爾發生,並且在很多情況下(並非全部),即使出現此錯誤,也會發送電子郵件。我們現在正在考慮使用SMTP中繼服務。 – ankimal 2010-09-07 14:04:47

相關問題