我有一個表單發送4封單獨的電子郵件時,它處理所有包含最多4個附加的PDF/Word文檔。我設置它的方式是,我在每封電子郵件上都有可欺的=「false」,以便立即發送。然後,在最後一封電子郵件中,我還有remove =「true」,以便從我的服務器上刪除附件。我遇到的問題是,在我收到前發送的4封電子郵件中只有2封是:ColdFusion郵件假脫機超時
java.net.SocketTimeoutException:讀取超時。
不知道我能做些什麼來解決這個問題,但我願意嘗試任何建議。
謝謝
我有一個表單發送4封單獨的電子郵件時,它處理所有包含最多4個附加的PDF/Word文檔。我設置它的方式是,我在每封電子郵件上都有可欺的=「false」,以便立即發送。然後,在最後一封電子郵件中,我還有remove =「true」,以便從我的服務器上刪除附件。我遇到的問題是,在我收到前發送的4封電子郵件中只有2封是:ColdFusion郵件假脫機超時
java.net.SocketTimeoutException:讀取超時。
不知道我能做些什麼來解決這個問題,但我願意嘗試任何建議。
謝謝
這將是一個糟糕的使用spoolenable =「false」。該設置的作用是將電子郵件設置爲立即繞過內置郵件假脫機程序發送。這使得客戶端請求必須等待返回,直到發送電子郵件。這會影響系統的用戶,因爲他們現在必須等待CF服務器實際發送電子郵件。這現在增加了潛在的客戶端請求失敗點並可能導致其他問題。
如果你想避免假脫機,我會用cfthread來發送郵件。這樣你至少不會影響郵件發送的客戶端。
那麼我將可設置爲false的原因是因爲我的電子郵件附件正在附加到4個不同的電子郵件中,因此在所有郵件都處理完畢之前無法刪除它們。如果我讓電子郵件被後臺處理並刪除最後一封電子郵件中使用remove =「true」的附件,或者使用cffile刪除它們,它們有時會在實際發送電子郵件之前被刪除。將發送它們在cfthread中解決這個問題? – dukedevil294
也許我可以讓電子郵件後臺打印,然後安排每晚進行的任務並清空該文件夾。我認爲這可能是妥協這兩種想法的最佳方式。 – dukedevil294
如果文件刪除是你關心的問題,你應該以不同的方式處理文件。我會暫時將它們存儲在某個地方,然後有一個過程在稍後刪除它們。那麼你仍然可以假脫機電子郵件,而不會影響用戶。 –
這似乎是一個比Java問題更多的服務器問題。當你的表單運行時,在打開套接字和發送數據之間是否有很長一段時間?如果沒有數據被髮送,大多數服務器只會在關閉之前將套接字保持活動狀態很長時間。您可能想要查看是否有任何選項可以讓連接保持更長時間。 – Shrike