модуль node-imap, получающий старые письма в папке «Входящие» - PullRequest
0 голосов
/ 27 марта 2020

Я использую модуль 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();
});
...