【问题标题】:node-imap, mail event not working when multiple email comesnode-imap,邮件事件在收到多封电子邮件时不起作用
【发布时间】:2019-07-05 18:09:09
【问题描述】:

我正在使用 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();
        });
    });
    }
}

【问题讨论】:

  • 连接关闭时,也就是ECONNRESET的意思,需要再次运行imap.connect()。如果您不这样做,则该连接将关闭,并在剩下的时间里保持关闭状态。
  • 我应该在哪里提到 imap.connect() ?目前,imap.connect() 仅在节点应用程序启动时文件初始化时执行一次!!!我已经更新了我的问题,请看一下
  • ECONNRESET 表示连接已重置。在那之后不会再发生任何事情了。是否、何时以及如何重新连接取决于您。

标签: javascript node.js imap node-imap


【解决方案1】:

我猜你应该使用imap.on 而不是imap.once

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

上面的代码对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 2016-05-11
    • 2017-10-06
    • 2021-06-27
    • 2014-06-17
    相关资源
    最近更新 更多