node.js - node-imap 模块在收件箱中接收旧电子邮件
问题描述
我正在使用 node-imap NPM 模块并从我的收件箱中获取所有电子邮件。添加新电子邮件时它工作得很好,但是当我从我的邮件客户端(Mac 邮件)中删除一封电子邮件并刷新代码时,node-imap 模块仍在收件箱中提取这封电子邮件。例如,如果我有一封@icloud.com 电子邮件,我在 Mac 邮件客户端的收件箱中删除了一封电子邮件,当我访问 www.icloud.com 时,它会从收件箱中删除,但当我通过node-imap 模块,电子邮件仍然存在。
请看下面的代码。
router.get('/get-imap-emails', (req, res) => {
const { email, password, incomingHost, port, tls, accountType } = req.query;
let emailMessages = []
var imap = new Imap({
user: email,
password: password,
host: incomingHost,
port: port,
tls: tls
});
openInbox = cb => {
imap.openBox('INBOX', true, cb);
}
imap.once('ready', () => {
openInbox((err, box) => {
if (err) throw err;
getEmails(box.messages.total);
});
});
imap.once('error', err => {
console.log(err);
});
// Custom functions
getEmails = messageCount => {
imap.search(['ALL'], (err, results) => {
if (err) {
console.log(err)
} else {
imap.fetch(results, {
bodies: '',
struct: true
}).on('message', (message) => {
message.on('body', (stream) => {
// Code to process email with mailparser
});
}).once('error', error => console.log(error)).once('end', () => {
imap.end()
res.status(200).send()
});
}
});
}
imap.connect();
});
解决方案
推荐阅读
- arrays - Bash:删除关联数组中的空条目或缺失条目
- python - 基于Repeater的Qt Tree模型和自定义视图
- javascript - React Native 包括 ScrollView 中的组件不起作用
- ios - 如何将多个数字附加到 Binding var
- rust - 如何将混淆器-llvm 添加到 Rust 编译工具链?
- git - 如何合并两个具有不同哈希的相同提交?
- java - Javaparser:获取方法返回类型的泛型类,如List
- r - 如何在使用不同大小的数据时在同一图中绘制线和点
- spring-boot - 使用 Spring Boot 在运行时加载 Yml
- reactjs - Antd 中的 Markdown