2017-04-15 90 views
1

tl; dr:郵件監聽器2似乎超時,我想不斷地收聽電子郵件而不需要重新啓動腳本。郵件監聽器2 - 連接結束

我在我的node.js項目中使用了mailer-listerner2軟件包(https://github.com/chirag04/mail-listener2/)。我想不斷收聽到達特定收件箱的電子郵件,然後解析這些電子郵件以進行進一步處理。

我建立了一個連接,並且解析了所有工作,但是我看到imap連接看起來超時,或者至少對新到達的電子郵件沒有響應。

由於mail-listener2軟件包依賴於imap npm軟件包,我仔細查看了代碼並嘗試減少IDLE計時器,以便每隔10秒發送一次請求給imap(gmail)服務器,而不是一次每30分鐘一班。

該醒來今天早晨時檢查我看到日誌下面確實形勢好轉但是:

<= 'IDLE OK IDLE terminated (Success)' 
=> 'IDLE IDLE' 
<= '+ idling' 
=> DONE 
<= 'IDLE OK IDLE terminated (Success)' 
=> 'IDLE IDLE' 
<= '+ idling' 
[connection] Ended 
[connection] Closed 

連接結束&關閉似乎來自核心IMAP模塊。我認爲發送一個IDLE檢查可以確保斷開連接不會發生,但正如你所看到的,情況並非如此。

我也嘗試調查Noop,但它似乎會導致一些其他問題與郵件被讀兩次。

據我所知,如果我的計時器太低,例如每隔幾秒鐘,這可能會導致郵件因爲阻止服務器響應的呼叫而不斷解析,這可能是我看到上述Noop問題的原因。

不想離開並繼續嘗試這個,我想知道其他人是否已經解決了這個問題並克服了這個問題?

+0

爲什麼不嘗試,如果連接被關閉,重新連接?連接關閉的原因很多。 – Gntem

+0

是 - 我試過,似乎沒有工作: mailListener.on('server:disconnected',()=> {console.log('imapDisconnected'); mailListener.stop(); mailListener.start() );}); – munkee

+0

看起來好像別人有同樣的問題,並在我重新啓動內置https://github.com/waqassiddiqi/mail-listener2/commit/317cbdde695f10b6ae0982970f619ca37429ace6 – munkee

回答