节点 Imap - 关闭打开的框?
Node Imap - close the opened box?
我正在使用 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
})
})
}
可以看出,当邮件事件触发时,我正在从自身内部调用搜索函数。然后我打开一个盒子,我之前没有关闭它。
所以,最后的问题是:这是否出于某种原因很麻烦?如果是,我应该关闭框,我将如何使用 "mail" 事件?
@mscdex 希望你能看到。
IMAP RFC specifies 每当您打开另一个邮箱而另一个邮箱已经打开时,在打开新邮箱之前会对前一个邮箱进行隐式关闭。如果打开新邮箱时出现错误,则不会打开任何邮箱(因为之前的邮箱仍处于关闭状态)。
我正在使用 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
})
})
}
可以看出,当邮件事件触发时,我正在从自身内部调用搜索函数。然后我打开一个盒子,我之前没有关闭它。
所以,最后的问题是:这是否出于某种原因很麻烦?如果是,我应该关闭框,我将如何使用 "mail" 事件?
@mscdex 希望你能看到。
IMAP RFC specifies 每当您打开另一个邮箱而另一个邮箱已经打开时,在打开新邮箱之前会对前一个邮箱进行隐式关闭。如果打开新邮箱时出现错误,则不会打开任何邮箱(因为之前的邮箱仍处于关闭状态)。