Я использую модуль node-imap NPM и получаю все электронные письма из своего почтового ящика. Он отлично работает при добавлении нового электронного письма, однако, когда я удаляю электронное письмо из своего почтового клиента (Ma c mail) и обновляю код sh, модуль node-imap по-прежнему извлекает это электронное письмо из папки «Входящие». Например, если у меня есть электронная почта @ icloud.com и я удаляю электронную почту из папки «Входящие» на моем почтовом клиенте Ma c, она удаляется из папки «Входящие», когда я go до 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();
});