首页 > 解决方案 > node-imap,邮件事件在收到多封电子邮件时不起作用

问题描述

我正在使用 node-imap 库来阅读邮件,邮件事件在初始化后第二次没有被触发。

下面是我的代码

此外,它给出错误:在第一次检索电子邮件后将 ECONNRESET 读取为错误。

期望 imap.once('mail', function (x) { } 应该在邮箱中出现任何新邮件时调用。

imap.once('mail', function (x) { } 没有被触发。

此事件仅在我运行 node.js 文件时触发一次,之后它不会被触发。请建议。

imap.connect();

imap.once('ready', function () {
    console.log("Imap ready");
    readMail();
});

function readMail() {
    openInbox(function (err, box) {

        imap.once('mail', function (x) {
            console.log("New Mail...", x);
            executeMail(err);
        });
    });
    }
}

根据评论在下面尝试过,但仍然无效。

function readMail() {
    openInbox(function (err, box) {

        imap.once('mail', function (x) {
            console.log("New Mail...", x);
            executeMail(err);
            imap.connect();
        });
    });
    }
}

标签: javascriptnode.jsimapnode-imap

解决方案


我想你不应该imap.on使用imap.once

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

上面的代码对我有用。


推荐阅读