mcpField
Q
qq-email

qq-email

github.com/shadowcz007生产力0477 次安装31 周前更新
代码仓库

关于 qq-email

用于 QQ 邮箱收发和查询邮件的命令行 Skill,通过 IMAP 接收、SMTP 发送,并从环境变量读取账号与授权码。脚本支持按邮件 UID 获取完整正文,便于按需处理邮件内容。

主要功能

  1. 01通过 SMTP 发送邮件
  2. 02通过 IMAP 接收邮件
  3. 03按数量或日期筛选邮件
  4. 04按 UID 获取完整正文
  5. 05凭证仅从环境变量读取

适用场景

  1. 01从命令行发送 QQ 邮件
  2. 02查看近期或指定日期范围的邮件
  3. 03获取特定邮件的完整正文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shadowcz007/skills --skill qq-email

安装后在 Claude Code 中输入/qq-email确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

package-lock.json
package.json
scripts/
get-body.js
receive.js
send.js

详细介绍

来自项目 README

何时使用

用户要使用 QQ 邮箱 发邮件、收邮件、查邮件、代发邮件或配置 QQ 邮箱时使用本 skill。

QQ 邮箱收发

面向 QQ 邮箱:通过 IMAP 收取邮件、SMTP 发送邮件。账号与授权码仅从环境变量读取,不在代码或配置中硬编码。

凭证(环境变量)

变量说明
QQ_EMAIL_ACCOUNTQQ 邮箱账号(完整地址,如 [email protected])
QQ_EMAIL_AUTH_CODEQQ 邮箱授权码(在 QQ 邮箱「设置 → 账户」中开启 IMAP/SMTP 后生成,非 QQ 登录密码;勿提交到仓库)

脚本会校验,缺失时报错并退出;请勿在终端用 echo 等方式检查,以免泄露授权码。

QQ 邮箱服务器

  • IMAP:imap.qq.com,端口 993(SSL)
  • SMTP:smtp.qq.com,端口 465(SSL)

脚本

脚本作用
scripts/send.js从环境变量读凭证,用 nodemailer 连接 QQ 邮箱 SMTP 发信;支持收件人、主题、正文(CLI 参数)。
scripts/receive.js从环境变量读凭证,用 imap + mailparser 连接 QQ 邮箱 IMAP 收信;支持「最近 N 条」或「最近 N 天」,输出主题、发件人、日期、UID、正文摘要。
scripts/get-body.js按 UID 获取指定邮件的完整正文(纯文本,无摘要截断)。必须传入 --uid(值为收信列表中的 UID)。

发信流程

在 skill 根目录下执行(需已 npm install):

node scripts/send.js <收件人> <主题> <正文>

正文若含空格,请用引号包裹;或只传收件人和主题,正文从 stdin 读入(见脚本 --stdin)。

示例:

node scripts/send.js "[email protected]" "测试主题" "邮件正文内容"

收信流程

# 收取最近 10 条(默认)
node scripts/receive.js

# 收取最近 N 条
node scripts/receive.js --limit 20

# 收取最近 N 天的邮件(如 7、30、90)
node scripts/receive.js --days 7

输出:每封邮件的主题、发件人、日期、UID(收件箱内唯一标识,用于按 UID 取正文)、正文摘要(前约 200 字),便于查看。

获取邮件正文

需要某封邮件的完整正文时,使用 get-body.js,传入收信列表中该邮件的 UID:

node scripts/get-body.js --uid 12345

未传 --uid 时会提示并退出。UID 与收件箱绑定,邮件移动或删除后可能失效。

  • 输出:完整正文输出到 stdout(纯文本;若原邮件仅有 HTML,会做简单去标签后输出)。可重定向到文件或管道给其它命令。
  • 环境变量:与收信相同,需 QQ_EMAIL_ACCOUNT、QQ_EMAIL_AUTH_CODE。

可选能力(与「收取选项」对应)

  • 收取时间范围:通过 --days 7 / --days 30 / --days 90 使用 IMAP SINCE 条件。
  • 收取「我的文件夹」:当前脚本默认 INBOX;若需自定义文件夹,可扩展脚本中的 openBox(如 openBox('我的文件夹', ...))。

安全提醒

  • QQ 邮箱授权码需在「设置 → 账户」中开启 IMAP/SMTP 服务后生成,与 QQ 登录密码不同,不要混淆。
  • 不要将 QQ_EMAIL_ACCOUNT、QQ_EMAIL_AUTH_CODE 的真实值写入代码或提交到仓库;仅通过环境变量或本地 .env 配置。

评论

支持 Markdown