SuperAPI AI 工具集

imap-smtp-email

办公与效率

查看项目

更新于 10-16 04:42

技能介绍

IMAP/SMTP Email 是一个基于命令行的邮件工具,用于通过 IMAP 协议读取、搜索和管理邮件,并通过 SMTP 协议发送邮件。它支持 Gmail、Outlook、163.com、126.com、QQ Mail 以及任何标准 IMAP/SMTP 服务器。

用途 该工具面向需要在命令行或脚本中收发邮件的场景,可用于检查新邮件、读取完整邮件、下载附件、按条件搜索邮件、标记已读/未读、列出邮箱,以及发送纯文本或 HTML 邮件(支持抄送、密送和附件)。

主要能力

  • 接收邮件(IMAP):check 检查新邮件(支持 --limit、--mailbox、--recent);fetch 获取完整邮件;download 下载附件(支持 --dir、--file);search 搜索邮件(支持 --unseen、--seen、--from、--subject、--recent、--since、--before、--limit);mark-read / mark-unread 标记已读或未读;list-mailboxes 列出邮箱;list-accounts 列出账户。
  • 发送邮件(SMTP):send 发送邮件,必填 --to 和 --subject,可选 --body、--html、--body-file、--html-file、--cc、--bcc、--attach、--from;test 测试 SMTP 连接。
  • 多账户支持:可通过 setup.sh 添加新账户,或手动添加带前缀的变量(如 WORK_ 前缀),使用时在命令前加 --account <name> 指定账户。

使用方式

  1. 安装依赖:npm install
  2. 运行配置脚本:bash setup.sh,配置保存在 ~/.config/imap-smtp-email/.env
  3. 配置文件包含默认账户的 IMAP/SMTP 主机、端口、用户、密码、TLS、邮箱等变量,以及文件访问白名单 ALLOWED_READ_DIRS 和 ALLOWED_WRITE_DIRS。
  4. 通过 node scripts/imap.js 和 node scripts/smtp.js 执行相应命令,例如: node scripts/imap.js check --limit 10 node scripts/imap.js fetch <uid> node scripts/imap.js search --unseen --from foo@bar.com node scripts/smtp.js send --to recipient@example.com --subject "Hello" --body "World" node scripts/smtp.js send --to recipient@example.com --subject "Report" --body "Please find attached" --attach report.pdf

支持的邮件服务商及默认服务器

  • 163.com:IMAP imap.163.com:993,SMTP smtp.163.com:465
  • vip.163.com:IMAP imap.vip.163.com:993,SMTP smtp.vip.163.com:465
  • 126.com:IMAP imap.126.com:993,SMTP smtp.126.com:465
  • Gmail:IMAP imap.gmail.com:993,SMTP smtp.gmail.com:587
  • Outlook:IMAP outlook.office365.com:993,SMTP smtp.office365.com:587
  • QQ Mail:IMAP imap.qq.com:993,SMTP smtp.qq.com:587

适用场景 适合需要在自动化脚本、命令行工作流或开发环境中收发和管理邮件的用户,尤其是需要多账户切换、按条件检索邮件、批量下载附件或发送带附件邮件的场景。

限制与注意事项

  • Gmail 拒绝使用普通密码,必须生成应用专用密码(https://myaccount.google.com/apppasswords),且需启用两步验证。
  • 163.com / 126.com 需使用授权码而非账户密码,并需先在网页设置中启用 IMAP/SMTP。
  • 配置文件以 600 权限保存在 ~/.config/imap-smtp-email/.env,文件访问白名单限制附件保存位置,切勿将 .env 文件提交到版本控制。
  • 其他未在资料中提及的功能、收费、价格、平台或效果暂未提供。