节点Imap - 关闭打开的框?

时间:2017-07-21 14:00:55

标签: node.js imap node-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
    })
  })

}

可以看出,当邮件事件触发时,我正在从内部调用搜索功能。然后我打开一个盒子,我之前没有关闭它。

所以,最后一个问题:出于某种原因这是麻烦吗?如果是,我应该关闭该框,我将如何使用" mail"事件吗

@mscdex希望你看到这个。

1 个答案:

答案 0 :(得分:1)

IMAP RFC specifies每当您打开另一个邮箱时,只要打开另一个邮箱,就会在打开新邮箱之前在上一个邮箱上发生隐式关闭。如果打开新邮箱时出错,则不会打开任何邮箱(因为上一个邮箱仍处于关闭状态)。