我想在使用 imap.seq.fetch('1:n', fetchOptions) 获取前 n 条消息时使用 imap 从 icloud 邮件中获取消息,但我想从最近的订单中获取。我怎样才能做到这一点?
const imapConfig = {
user: '[email protected]',
password: 'xxx-xxxx-xxxx-xxxx',
host: 'imap.mail.me.com',
port: 993,
tls: true,
};
const imap = new Imap(imapConfig);
function openInbox(cb) {
imap.openBox('INBOX', true, cb);
}
imap.once('ready', () => {
openInbox((err, box) => {
if (err) throw err;
const fetchOptions = {
bodies: '',
markSeen: false,
struct: true,
};
const f = imap.seq.fetch('1:*', fetchOptions);
f.on('message', (msg, seqno) => {
console.log('Message #%d', seqno); })
我想从最新到旧批量获取 10 条消息
IIRC openBox() 返回一个对象,其中包含框中的消息数量。我不记得该字段的名称。我确信它不是 x,但无论如何,一旦你找到了这个名字,你需要做的就是调用 imap.seq.fetch 来获取范围 [x-10,x],其中有一点花哨案例x<11.