Office365 节点模块';imap&x27;在执行任何操作的某个时间后返回401

Office365 节点模块';imap&x27;在执行任何操作的某个时间后返回401,office365,imap,imaplib,node-imap,Office365,Imap,Imaplib,Node Imap,在我们的项目中,我们使用“imap”节点模块连接到ms office outlook邮件服务器,并且使用imap模块执行许多操作,如获取、获取框、搜索、设置标志等 我们的服务器正在尝试每分钟在邮件服务器上执行上述操作,并且有许多并行流正在运行。并行流只是在imap服务器上并行执行上述操作 但过了一段时间,所有流开始返回401哪个imap模块正在返回。我们的代码大致如下: var Imap = require('imap') var imap = new Imap({ user: 'xxx

在我们的项目中,我们使用“imap”节点模块连接到ms office outlook邮件服务器,并且使用imap模块执行许多操作,如获取、获取框、搜索、设置标志等

我们的服务器正在尝试每分钟在邮件服务器上执行上述操作,并且有许多并行流正在运行。并行流只是在imap服务器上并行执行上述操作

但过了一段时间,所有流开始返回401哪个imap模块正在返回。我们的代码大致如下:

var Imap = require('imap')
var imap = new Imap({
    user: 'xxx@xx.com',
    password: 'xxxx',
    host: 'outlook.office365.com',
    port: 993,
    tls: true
});

imap.once('ready', function () {
  imap.openBox('inbox', false, function (err, box) {
    if (err) throw err;
    var msgno = 1;
    let fetchCheck = imap.seq.fetch(msgno + ':*', { bodies: [''] });
    fetchCheck.on('message', function (msg, seqno) {
      if (seqno == msgno) {
        imap.seq.setFlags(seqno, 'Seen', function (err) {
          if (err) {
            return err;
          } else {
            imap.end();
          }
        });
      }
    })
    fetchCheck.once('error', function (err) {
      imap.end();
      imap.closeBox();
    });
  });
});
imap.once('error', function (err) {
  console.log(err);
});
imap.once('end', function () {
  console.log('Done flagging message');
  console.log('Connection ended');
});
imap.connect();
像上面的代码一样,我们也在邮件服务器上使用搜索、获取、移动操作,所有这些操作都是并行运行的。所以过了一段时间,突然这些并行流开始出现401错误:在使用服务器进行身份验证时超时


是否存在与office mail server的连接限制或“imap”节点模块对连接处理的限制?

401根本不是imap错误。IMAP错误称为“确定”、“否”和“错误”,因此,您得到的不是来自IMAP连接(outlook.office365.com端口993是IMAP,而不是任何类型的网关)。您可能希望启用更多的调试日志记录,并查看实际发生的情况。这是我从imap节点模块得到的错误:错误:在使用服务器2019-11-25T15:51:07.70+0530[APP/PROC/WEB/0]进行身份验证时超时。(/home/vcap/app/node_modules/imap/lib/Connection.js:139:17)2019-11-25T15:51:07.70+0530[app/PROC/WEB/0]超时退出。_-onTimeout(/home/vcap/app/node_modules/async listener/glue.js:188:31)2019-11-25T15:51:07.70+0530[app/PROC/WEB/0]超时退出在tryOnTimeout时超时(timers.js:323:5),换句话说,连接超时。有东西正在丢弃你的数据包,你需要找出是什么和为什么。