节点的imap
我使用node-imap连接到电子邮件服务器。我身边有20个用户为我打开与服务器的连接,并听取新邮件。
问题是,为了能够做到:
imap.once('mail', function(numNewMsgs) {
console.log('');
});
它需要你有一个打开的盒子。所以,我总是打开一个盒子,里面我从来没有关闭。我的流程如下:
function search(imap) {
imap.openBox('INBOX', true, (err, box) => {
imap.once('mail', function() {
search(imap);
});
imap.search(someConditions, function(err, results) {
//do some stuff, fetch or whatever
})
})
}
由于可以看出,我是从自身内部当邮件事件触发调用搜索功能。我再打开一个盒子,这是我以前没关闭的时间。
所以,最后的问题是:是这样的麻烦出于某种原因?如果是,我应该关闭对话框,我怎么会去使用“邮件”事件?
@mscdex希望你能看到这一点。
回答如下:每当你打开另一个邮箱时,有一个已经打开,一个隐含接近发生在以前的邮箱打开新邮箱之前IMAP RFC specifies。如果有错误,同时打开新的邮箱,则没有邮箱将开放(因为以前的邮箱仍然是封闭的)。