IMAP / SMTP Email(个人邮箱主 Skill)
⚠️ 强制首步(最高优先级,必读必执行)
加载本 skill 后,无论任何情况,第一步必须立即调用get-token.sh 获取凭证。 不要检查 .env,不要读取任何配置文件,不要判断是否已配置——直接执行凭证获取脚本。脚本内部会自动从凭证服务拉取授权码、推断 IMAP/SMTP 服务器并写入 .env。
第 1 步:获取凭证(必须先执行)
如果用户指定了邮箱(如test@163.com),从邮箱 @ 后的域名推断 platform 参数:
然后调用:
- macOS / Linux:
bash '<SCRIPT_PATH>/get-token.sh' --platform '<平台名>' - Windows:
powershell -ExecutionPolicy Bypass -File '<SCRIPT_PATH>\get-token.ps1' -Platform '<平台名>'
--platform 参数,脚本会自动遍历所有平台找到第一个可用的:
- macOS / Linux:
bash '<SCRIPT_PATH>/get-token.sh'
<SCRIPT_PATH> 指本 skill(imap-smtp-email)的根目录。
脚本成功后会输出 JSON(含 "success": true、"email": "xxx")并将凭证写入 .env。
第 2 步:执行邮件命令
凭证就绪后,通过resolve-account.cjs 执行实际邮件操作:
账号指定方式
支持两种方式指定使用哪个邮箱:- 精确邮箱地址:
--account-email 'your@163.com' - 平台别名(用户只说了邮箱品牌时使用):
--account-platform 'sina_mail'
--account-platform 参数:
示例:用户说”用新浪邮箱帮我发个邮件”→
优先级:--account-email>--account-platform> 自动选择
禁止事项(违反将导致任务失败)
- ❌ 禁止跳过第 1 步直接执行邮件命令
- ❌ 禁止手动读取或修改
.env文件 - ❌ 禁止在获取凭证前做任何”配置检查”或”环境检查”
- ❌ 禁止告诉用户”需要先配置”或”需要授权”——凭证由脚本自动获取
定位:这是唯一的个人邮箱主 skill。只要需求不再是”推送到我自己的邮箱做留存”,而是要像正常邮箱一样完整收发邮件,就应该走 imap-smtp-email。
1. 现在的职责
imap-smtp-email 负责所有完整邮件能力:
- 发给任意收件人
to/cc/bcc- 纯文本 / HTML
- 附件发送
- IMAP 收件、搜索、查看详情
- 下载附件
- 标记已读 / 未读
- 列出邮箱文件夹
当前邮件体系中,所有个人邮箱能力都统一收敛到本 skill,不再按邮箱厂商拆分入口。
2. 与平台公邮的边界
判断口诀:
- 只给自己做留存:更适合平台公邮
- 像正常邮箱那样收发:直接
imap-smtp-email
这里的关键不是”先检查平台公邮”,而是先理解场景:如果任务本质是结果留存,就选平台公邮;如果任务本质是完整邮件动作,就直接选本 skill。
3. 收敛后的能力组成
本 skill 统一承接了个人邮箱场景里仍然有效的能力与预设:- 网易系邮箱 provider 预设
- QQ / Foxmail / 企业邮 provider 预设
- 统一的凭证自动刷新脚本(
get-token.sh/get-token.ps1)
email-skill的个人邮箱分流目标只剩一个:imap-smtp-email- 个人邮箱侧的脚本、配置和帮助信息都应围绕本 skill 维护
4. 支持的邮箱 Provider 预设
以下 provider 已内置到setup.sh 配置向导中:
对于587端口,SMTP_SECURE=false,走 STARTTLS。 对于465端口,SMTP_SECURE=true,走 SSL。
5. 凭证与配置(全自动)
入口脚本内部自动完成以下步骤,无需任何手动操作:- 调 4230 接口查询已绑定的所有个人邮箱
- 根据
--account-email参数或自动选择决定使用哪个邮箱 - 自动刷新凭证并写入配置
- 然后执行后续的 smtp / imap 命令
7. IMAP 命令
<SCRIPT_PATH>指本 skill(imap-smtp-email)的根目录。
inbox-check
inbox-search
inbox-fetch
inbox-download
其他 IMAP 命令
8. SMTP 命令
send
常见示例
发送 HTML 邮件
发送附件
抄送 / 密送
9. 与其他 skill 的关系
email-skill:统一入口,负责意图识别与路由分发public-skill:平台公邮,仅做”推送到自己邮箱”imap-smtp-email(本 skill):完整个人邮箱能力