Mail-listener2 - 连接结束

时间:2017-04-15 08:41:34

标签: node.js email gmail imap

tl; dr:Mail-listener2似乎超时,我想继续收听电子邮件而不需要重新启动脚本。

我在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

连接已结束&amp;关闭似乎来自核心imap模块。我认为发送IDLE检查可以确保不会发生断开连接,但正如您所看到的那样情况并非如此。

我也试过调查Noop,但它似乎会导致其他一些问题,邮件会被阅读两次。

我明白,如果我的定时器太低,例如每隔几秒就会因邮件阻止服务器响应而导致邮件不断被解析,这可能就是我看到上面的Noop问题的原因。

不想离开并继续尝试这个我想知道其他人是否已经解决了这个问题并克服了这个问题?

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人 - 我已经将一堆邮件 - 侦听器2分叉。其中一些已经解决了重新连接问题,因此我将其重构为单个实现。我还把其他几个与这个问题无关的部分拉到了一起。

https://www.npmjs.com/package/mail-listener-fixed

https://github.com/Hardware-Hacks/mail-listener-fixed/