mcpField
Q
qq-email

qq-email

github.com/shadowcz007生産性0477 回インストール31 週間前に更新
リポジトリ

qq-email について

SMTP と IMAP を使って QQ メールを送受信・確認するコマンドラインスキルです。認証情報は環境変数から読み込み、UID を指定してメール本文全体を取得できます。

主な機能

  1. 01SMTP によるメール送信
  2. 02IMAP によるメール受信
  3. 03件数または日付での絞り込み
  4. 04UID による本文全体の取得
  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 配置。

コメント