我正在使用JavaMail的SMTPTransport.sendMessage方法來發送電子郵件在我的Android應用程序,一切工作正常......但是當我開始發送消息,並在中間,我禁用我的無線網絡,它得到卡住。我已經等了一個多小時,現在仍然卡住了;沒有例外拋出......任何想法如何處理這種情況?SMTPTransport的sendMessage被困在連接丟失
編輯:
我加了超時
props.put("mail.smtp.connectiontimeout", "3000");
props.put("mail.smtp.timeout", "3000");
似乎不工作...我已經模擬了一個連接損耗,它已經現在5分鐘,它仍然是處於發送狀態並且沒有超時
EDIT2:
16mins
06-30 18:47:27.722: I/System.out(15906): javax.net.ssl.SSLException: Write error: ssl=0xdf8268: I/O error during system call, Invalid argument
編輯3後超時/錯誤(甚至不知道這是一個超時)發生:
它並不總是拋出一個異常...我模擬了一個連接丟失後1小時,仍然沒有例外...它是處於發送狀態.....且尚未返回:(
確定THX我會試試看! 你能推薦一個很好的值smtp.timeout讀取超時?我已經將它設置爲3000,即使郵件實際發送成功(即smtp的回覆超時並拋出錯誤),我也會收到很多超時錯誤 – yeahman
ok thx我會試一試! – yeahman
如果您的郵件服務器處於繁忙狀態,則3秒鐘的時間會非常短暫。你可能需要試驗以找出最好的。超時應該與應用程序可以容忍的一樣大,因爲它只能在非常罕見的情況下觸發。它不應該基於你希望郵件服務器的速度有多快,或者你認爲它應該有多快。 –