用途
该技能为 AI 助手提供直接的邮件收发能力,通过 IMAP 和 SMTP 协议访问邮箱,可用于发送邮件、获取邮件列表以及读取指定邮件的完整内容。它适合需要将邮件操作集成到自动化流程中的场景,例如发送提醒、监控收件箱、提取邮件信息等。
主要能力
- 通过 SMTP 发送邮件,支持 TLS 加密,正文可内联或从文件读取,支持抄送。
- 通过 IMAP 获取指定邮箱文件夹的邮件头列表,可指定数量。
- 按邮件 ID 读取完整邮件内容,可选择仅读取头部、正文或全部。
- 支持多账号管理,账号信息通过 YAML 文件配置。
- 密码存储在 macOS Keychain 中,不写入配置文件。
- 使用 curl 配合 OpenSSL/LibreSSL,对腾讯企业邮箱等有更好的 TLS 兼容性。
使用方式
技能包含三个脚本,位于 scripts 目录下:
- 发送邮件:
./scripts/send-email.sh -t recipient@example.com -s "Subject" -b "Message",也可用-f message.txt从文件读取正文,用-c添加抄送。 - 获取邮件列表:
./scripts/fetch-emails.sh默认获取收件箱最新 10 封,可用-n 20指定数量,用-m "Sent"指定文件夹。 - 读取邮件:
./scripts/read-email.sh 123读取完整邮件,可用-p HEADER或-p BODY仅读取部分。
账号配置在 references/accounts.yaml 中,需设置默认账号及各账号的 IMAP/SMTP 主机、端口、登录名和协议。密码通过 macOS 的 security add-generic-password 命令存入 Keychain,服务名遵循 email-imap-{account_name_lowercase} 和 email-smtp-{account_name_lowercase} 的命名规则。
搜索或过滤可通过管道结合 rg 或 grep 对获取的邮件头进行客户端筛选,例如 ./scripts/fetch-emails.sh -n 200 | rg -i "github" -B 2,再提取邮件 ID 后用 read-email.sh 读取正文。
适用场景
- 快速发送邮件,如会议跟进、提醒等。
- 检查收件箱最新邮件并汇总。
- 按关键字筛选近期邮件并读取指定邮件。
- 与其他技能结合实现自动化,如检查日历后发送提醒、监控收件箱后创建系统通知、获取邮件后解析提取信息。
限制与注意事项
- 密码仅存储在 macOS Keychain 中,不显示或记录。
- 发送重要邮件前应确认,并验证收件人地址。
- 未经明确请求不应读取邮件。
- 腾讯企业邮箱的 IMAP SEARCH 对字符串条件可能不可靠,建议使用客户端过滤。
- 不同邮箱服务商(腾讯企业邮箱、Gmail、Outlook/Office 365)的 IMAP/SMTP 配置和认证要求不同,需按各自说明设置。
- 部分功能如附件处理、HTML 邮件撰写、OAuth2 认证等尚未实现。