SuperAPI AI 工具集

imap-smtp-email

办公与效率

查看项目

更新于 10-15 12:57

技能介绍

用途

IMAP/SMTP Email Tool 用于通过标准邮件协议读取、搜索和管理电子邮件,并通过 SMTP 发送邮件。它支持 Gmail、Outlook、163.com、vip.163.com、126.com、vip.126.com、188.com、vip.188.com,以及任何标准 IMAP/SMTP 服务器。

主要能力

IMAP(接收邮件) 提供以下命令:

  • accounts:列出已配置的邮箱账号,不暴露密码。
  • check:检查新邮件或未读邮件,可限制数量、指定邮箱文件夹、按时间范围筛选,也支持 --all-accounts 检查所有已启用账号。
  • fetch:按 UID 获取完整邮件内容。
  • download:下载邮件中的全部或指定附件,可指定输出目录和文件名。
  • search:按已读/未读、发件人、主题、时间范围、日期范围等条件搜索邮件。
  • mark-read / mark-unread:将一封或多封邮件标记为已读或未读。
  • list-mailboxes:列出全部可用邮箱文件夹。

SMTP(发送邮件) 提供以下命令:

  • accounts:列出已配置账号。
  • send:发送邮件,支持纯文本正文、HTML 正文、正文文件、抄送、密送、附件、指定发件人、指定账号等选项。发送需要传入 --confirmed。
  • test:通过向自己发送测试邮件来测试 SMTP 连接。

使用方式

配置由 LobsterAI Settings(邮箱设置)自动管理,配置文件 accounts.json 位于该技能目录中,脚本通过绝对路径自动加载。旧版 .env 配置仍作为回退方式支持。命令需通过提供的脚本运行,例如 node scripts/imap.js check、node scripts/smtp.js send ...。多账号场景下,可用 --account <id> 指定账号,读取类命令可用 --all-accounts 广播执行。发送前应始终与用户确认收件人、主题、发件账号和正文,未传入 --confirmed 时发送会被阻止。

依赖安装命令为 npm install。

配置参考中列出了常用邮件服务器的 IMAP/SMTP 主机与端口,例如 163.com 使用 imap.163.com:993 与 smtp.163.com:465,Gmail 使用 imap.gmail.com:993 与 smtp.gmail.com:587,Outlook 使用 outlook.office365.com:993 与 smtp.office365.com:587。163.com 需使用授权码而非账号密码,并需先在网页设置中启用 IMAP/SMTP。

适用场景

适合需要通过邮件协议自动检查未读邮件、搜索和读取邮件、下载附件、标记邮件状态,以及发送带附件邮件的场景。支持多账号收发。

限制与注意事项

  • 脚本是唯一的邮件传输接口,不应另写临时 IMAP/SMTP 脚本,也不应使用原始 socket、OpenSSL、net、tls 或其他邮件客户端。
  • 请勿在聊天中要求用户发送授权码、应用密码或账号密码。若账号被禁用、配置不完整或凭据无效,应让用户在 LobsterAI Settings > Email Settings 中启用或更新后重试。
  • 命令结果会对账号元数据脱敏,面向用户回复时应使用脱敏后的账号标签,除非用户明确要求完整地址。
  • SMTP 发送返回 success: true 仅表示发送服务器已接收待处理,不代表最终投递或收件箱已收到;收件方服务商后续仍可能通过退信拒绝。
  • 不得使用脱敏邮箱(如 ab***@example.com)作为收件人地址;若要发送到另一个已配置账号,应使用 --to-account <id>。
  • 附件文件名会被规范化为安全的本地文件名,无法在账号/UID 下载目录之外创建目录。
  • 网络安全方面:凭据应存放于 .env 并加入 .gitignore;Gmail 启用两步验证时应使用应用密码;163.com 应使用授权码。

故障排查

连接超时:确认服务器运行且可访问,检查主机和端口配置。认证失败:确认用户名(通常是完整邮箱地址)和密码正确;163.com 使用授权码,Gmail 启用两步验证时使用应用密码。TLS/SSL 错误:使 IMAP_TLS/SMTP_SECURE 设置与服务器要求匹配;对自签名证书可设置 IMAP_REJECT_UNAUTHORIZED=false 或 SMTP_REJECT_UNAUTHORIZED=false。