Office365 节点模块';imap&x27;在执行任何操作的某个时间后返回401
在我们的项目中,我们使用“imap”节点模块连接到ms office outlook邮件服务器,并且使用imap模块执行许多操作,如获取、获取框、搜索、设置标志等 我们的服务器正在尝试每分钟在邮件服务器上执行上述操作,并且有许多并行流正在运行。并行流只是在imap服务器上并行执行上述操作 但过了一段时间,所有流开始返回401哪个imap模块正在返回。我们的代码大致如下: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
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),换句话说,连接超时。有东西正在丢弃你的数据包,你需要找出是什么和为什么。