You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Node.js的mail-listener4库读取邮件的技术咨询

使用mail-listener4实现Node.js邮件读取功能

嘿,我来帮你把这段代码补全并实现完整的邮件读取功能~你现在的代码已经有了基础配置,但还缺关键的事件监听和启动逻辑,下面是完整的实现方案:

1. 补全并完善配置项

你的代码里mailParserOptions没写完,先把它补全,同时确保Gmail的配置符合要求(比如开启IMAP、使用应用专用密码如果开了两步验证):

var MailListener = require("mail-listener4"); 

var mailListener = new MailListener({ 
  username: "******@gmail.com", 
  password: "***********", // 划重点:Gmail开启两步验证的话,必须用「应用专用密码」代替普通密码
  host: "imap.gmail.com", 
  port: 993, 
  tls: true, 
  connTimeout: 10000, 
  authTimeout: 5000, 
  debug: console.log, // 开启调试日志,方便排查连接/认证问题
  tlsOptions: { rejectUnauthorized: false }, 
  mailbox: "INBOX", 
  searchFilter: ["ALL"], // 监听所有邮件,也可以改成["UNSEEN"]只抓未读邮件
  markSeen: true, // 读取后自动标记为已读
  fetchUnreadOnStart: false, // 启动时是否拉取历史未读邮件
  mailParserOptions: { streamAttachments: false } // 禁用附件流,直接解析邮件内容
});

2. 添加事件监听处理邮件

mail-listener4是事件驱动的,你需要监听核心事件来处理邮件和异常:

// 监听新邮件到来的核心事件
mailListener.on("mail", function(mail, seqno, attributes) {
  // mail是解析后的完整邮件对象,包含所有关键信息
  console.log("📩 收到新邮件:");
  console.log("主题:", mail.subject);
  console.log("发件人:", mail.from.text);
  console.log("纯文本内容:", mail.text);
  console.log("HTML内容:", mail.html);
  
  // 如果需要处理附件,直接遍历mail.attachments数组
  if (mail.attachments && mail.attachments.length > 0) {
    console.log("📎 附件数量:", mail.attachments.length);
    mail.attachments.forEach(att => {
      console.log("附件名:", att.filename);
      // 附件内容在att.content里,是Buffer类型,可以保存到本地或处理
    });
  }
});

// 监听错误事件,避免程序崩溃
mailListener.on("error", function(err) {
  console.error("❌ 邮件监听出错:", err);
});

// 监听连接结束事件
mailListener.on("end", function() {
  console.log("🔚 邮件监听已结束");
});

3. 启动邮件监听

最后调用start()方法正式开始监听:

mailListener.start();

// 后续如果需要停止监听,执行 mailListener.stop(); 即可

关键注意事项

  • Gmail前置配置:必须先在Gmail设置里开启IMAP功能,路径是「设置 -> 转发和POP/IMAP -> IMAP访问」,选择开启。
  • 两步验证适配:如果你的Gmail账号开了两步验证,绝对不能用普通密码登录,必须去Google账号设置里生成「应用专用密码」来替代。
  • 过滤规则自定义:searchFilter支持所有IMAP标准过滤条件,比如["UNSEEN", "FROM", "example@xxx.com"]可以只监听来自指定邮箱的未读邮件。

内容的提问来源于stack exchange,提问作者DJAMEL DAHMANE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:00:45