node.js - 通过 node.js 中的 imap-simple 获取看不见的消息并将它们标记为已读
问题描述
我正在尝试通过 node.js 的 imap-simple 模块获取所有看不见的消息。我可以成功地得到它并通过以下代码将它们标记为已读。
如果有不止一封新电子邮件,它会完美运行。但是,如果收件箱中只有一封新的后续邮件,则代码仅将其标记为已读,而不会阅读该邮件。但是,手动将一封电子邮件标记为未读,然后代码可以读取该电子邮件并将其标记为未读。
var config = {
imap: {
user: 'sd@sdf.com',
password: 'dcbfmgh',
host: 'imap.gfggdf.com',
port: 993,
tls: true,
authTimeout:3000,
tlsOptions: { rejectUnauthorized: false }
}};
imaps.connect(config).then(function (connection) {
return connection.openBox('INBOX'/*,false*/).then(function () {
var searchCriteria = ['UNSEEN']; //UNSEEN
var fetchOptions = {
bodies: ['HEADER', 'TEXT', ''],
markSeen: true,
};
return connection.search(searchCriteria, fetchOptions).then(function (messages) {
console.log('reading...');
messages.forEach(function (item) {
var all = _.find(item.parts, { "which": "" })
var id = item.attributes.uid;
var idHeader = "Imap-Id: "+id+"\r\n";
simpleParser(idHeader+all.body, (err, mail) => {
console.log(mail.from.value[0].address);
console.log(mail.subject)
});
});
});
});});
解决方案
推荐阅读
- java - 日志中 XML 请求有效负载的 Spring SOAP WebService-Masking 元素
- java - 通过二维数组到达整数 0 的位置
- javascript - React-Native-Paper 主题不会使用自定义字体
- azure - 无法将 Spring-boot 应用部署到 Azure 应用服务
- matplotlib - 如何为单图 matplotlib 生成多个图例
- html - 使用 Flexbox 悬停时隐藏图像并显示文本区域
- python - 如何组合两个 numpy 数组,以便为第一个数组的每一行附加第二个数组的所有行?
- sql - 如何在 SQLite 中重用递归 WITH 子句?
- machine-learning - 尝试列出所有图像以进行预处理但出现错误
- sql - Microsoft SQL Server 中是否存在类似 PLV8 的内容?