QQ邮箱附件直发
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1a7e2e57/qqmail-send-attachment。
技能介绍
要解决的问题
QQ 邮箱 MCP 的 SendMessage 发附件时,要求先把文件 base64 编码成上万字符,再原样写进工具参数。模型手工转录 base64 串时,O/0/I/l/1 这类字符极易抄错一位,服务器会直接拒收并报 content 校验失败。附件越大、串越长,链路越脆弱——根源在于模型参与了本不该参与的字符串搬运。
工作原理
这个技能用 Python 直连 QQ 邮箱 SMTP 服务,绕开了上述环节:
- 底层用标准库
smtplib+ssl建立加密连接; - 附件的 base64 由脚本在代码内通过
email.encoders.encode_base64完成,模型只传文件路径,不接触长字符串; - 脚本
~/.workbuddy/send_qqmail.py自包含、无第三方依赖; - 配置读取
~/.workbuddy/qqmail_config.json,形如{"email":"75536278@qq.com","auth_code":"你的SMTP授权码"};也可临时用环境变量QQMAIL_EMAIL/QQMAIL_AUTH_CODE覆盖。
首次使用需一次性配置:登录 QQ 邮箱网页版 → 设置 → 账户 → 开启 POP3/SMTP 服务,生成授权码(不是登录密码)并写入配置文件。
使用方式
- 多收件人:
--to "a@qq.com,b@qq.com",逗号分隔; - 支持任意附件类型;中文文件名按 RFC2231 编码,不会乱码;
- 脚本只用标准库(
smtplib/ssl/email),任意 Python 3 环境都能运行。
注意点
- 收件人邮箱必须真实存在;当前绑定邮箱为
75536278@qq.com(注意不是75537289); - 授权码仅保存在本机配置文件,不要写进代码或提交到仓库;
- 未配置授权码时,脚本会打印清晰指引并以退出码 2 结束,不会静默失败。
使用场景
- 每天要从多个数据文件批量邮件通知同事,避免手工转录base64串的抄错风险
- 把本地中文名报表作为附件发给外部客户,希望文件名和正文都稳定不乱码
- 配置一次SMTP授权码后,让模型在长时间任务里持续发送实验产物,无需重复编码
适合人员
- 需要自动化收发带附件邮件、减少手工转录出错的研发与测试工程师
- 维护机器人自动发信流程、希望模型只传文件路径的平台运维工程师
- 经常把本地生成的报表或压缩包发给客户的数据分析与财务人员