Necesito obtener información del mensaje de correo nuevo en el evento de mensaje de correo nuevo. Específicamente:
Mi código en este momento:
let Imap = require('node-imap') let imap = new Imap({ user: '***@gmail.com', password: '***', host: 'imap.gmail.com', port: 993, tls: true }); imap.on('ready', () => { imap.openBox('INBOX', true, (err, box) => { if (err) console.log(err) else console.log('Recipient is ready for accepting') }) }) imap.on('mail', mail => { const title = ? const subject = ? const email = ? console.log(`Email author: ${email} Title: ${title}, Description: ${subject}`) }) imap.connect()imap.on('mail', ...) no proporcionó información de nuevos correos. Sólo un número de correos nuevos.
mail(< integer >numNewMsgs) - Emitido cuando llega correo nuevo al buzón actualmente abierto.
Para obtener los datos del correo, use imap.seq.fetch o imap.search . Puede encontrar algunos ejemplos aquí: https://github.com/mscdex/node-imap#connection-events
Tal vez esto ayude ( https://github.com/mscdex/node-imap/issues/359#issuecomment-37099842 ):
imap.search([ 'NEW' ], function(err, results) { if (err || !results.length) return imap.end(); // fetch all resulting messages imap.fetch(results, ....); // or just fetch only the first result... which may not necessarily be newest // because the server can return results in any order imap.fetch(results[0], ...); });