2017-04-15 92 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

回答