首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在in imap中获取新邮件的数据

如何在in imap中获取新邮件的数据
EN

Stack Overflow用户
提问于 2021-08-23 17:53:59
回答 1查看 908关注 0票数 2

我需要在新邮件事件中获取新邮件消息的信息。具体地说:

  • 电子邮件地址,它发送邮件
  • 消息标题
  • 消息内容(文本)

我现在的密码是:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2022-05-10 12:59:18

imap.on('mail', ...)没有提供新邮件的信息。只有几封新邮件。

邮件(<整数>numNewMsgs) -当新邮件到达当前打开的邮箱时发出。

要获取邮件数据,请使用imap.seq.fetchimap.search。您可以在这里找到一些示例:https://github.com/mscdex/node-imap#connection-events

也许这有帮助(https://github.com/mscdex/node-imap/issues/359#issuecomment-37099842):

代码语言:javascript
复制
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], ...);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68897007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档