如何使用imap获取最新n条消息

问题描述 投票:0回答:1

我想在使用 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 条消息

smtp imap
1个回答
0
投票

IIRC openBox() 返回一个对象,其中包含框中的消息数量。我不记得该字段的名称。我确信它不是 x,但无论如何,一旦你找到了这个名字,你需要做的就是调用 imap.seq.fetch 来获取范围 [x-10,x],其中有一点花哨案例x<11.

© www.soinside.com 2019 - 2024. All rights reserved.