使用node-imap等待电子邮件到达

nwsw7zdq  于 2023-01-25  发布在  Node.js
关注(0)|答案(4)|浏览(209)

我正在使用node-imap作为邮件解决方案,但是我需要一种方法来等待电子邮件到达。在this post中,有人提到使用IMAP IDLE命令来完成此操作。我想知道是否有人成功地使用了此命令,以及您将如何建议将其合并到node-imap自述文件中提供的示例代码中?

7nbnzgx9

7nbnzgx91#

我决定使用inbox模块,这通过使用调用client.on("new", function(message){提供了一个清晰而快速的解决方案。

w9apscun

w9apscun2#

我认为一个好的起点是研究如何在www.example.com模块中创建此方法https://www.npmjs.com/package/inbox#wait-for-new-messages。
看起来这段代码发出了new的事件。据我所知,这个模块的代码调用fetch命令是有间隔的

erhoui1w

erhoui1w3#

对于node-imap,当新邮件到达当前打开的邮箱时,将发出“mail”事件。
您可以像这样收听新邮件事件:

imap.on('mail', function(numNewMsgs) {
    // Fetch new mail
});
a14dhokn

a14dhokn4#

您需要打开一个邮箱,您希望在其中侦听新邮件。下面是一个示例:

function listerBox() {
  imap.once("error", console.error);
  imap.on("ready", () => {
    imap.openBox("INBOX", true, (error, box) => {
      if (error) throw error;
      
      console.log('Connected!')

      imap.on("mail",  () => {
        console.log("New one!")
      })
    });
  });

  imap.connect();
}

listerBox()

相关问题