零暴露 SMTP 安全发信
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_46820e02/smtp-sender-secure。
技能介绍
为什么需要「零暴露」发信
让 Agent 代发邮件时,SMTP 账号、应用专用密码或整段发信脚本常被写进对话、提示词或环境变量。模型上下文、工具日志与协作回放都可能长期保留这些敏感信息;即便你要求「不要打印密码」,一次误用的 mgc_get 或读文件仍可能把实现细节暴露给模型。凭据一旦进入训练或共享链路,轮换成本很高。
技能如何组织工作流
这是一份文档型说明,不包含可直接拷贝运行的完整发信工程。核心依赖 MGC Blackbox(建议 ≥ 1.4.10):你在 MGC WebUI 的 Save 页录入 SMTP 配置,并记住只向 Agent 声明凭据的 info_type / info_owner(例如 smtp_gmail),永远不要把密码正文发给模型。发信脚本用 argparse 与 parse_known_args 编写后,经 mgc_save 存入 MGC;默认值尽量用字面量,避免 datetime.now() 一类动态默认触发 dynamic_args_detected。
实际发送时,Agent 调用 mgc_run,ext02 必须是 JSON 数组字符串(如 json.dumps(["--to","a@b.com"]))。黑盒执行后,模型通常只能看到 {pid, status} 与结果文件路径,看不到 SMTP 凭据、脚本源码与邮件实现细节。若启用隐私模式,把主题/正文单独存进 MGC,再配合 --use_stored_content,连邮件正文也可不进入对话。
边界与注意
- 本技能不提供自动群发、凭据生成,也不鼓励 Agent 擅自改已入库脚本;它只描述如何搭安全流程。
- 凭据轮换:对同一
info_type/info_owner再次mgc_save并设update_if_exists=true,脚本侧无需把新密码写进聊天。 - 每次发信应经你明确授权;
mgc_get不适合作为 AI 驱动执行的入口,发信以mgc_run为准。 - 沙箱内若 MCP 不可用,需在系统环境运行 MGC 或按项目文档经 FastAPI 敏感执行接口调用(详见 SKILL 中的 Troubleshooting 表)。
使用场景
- 本机已运行 MGC,希望 Agent 代发告警或通知邮件,但对话与日志里不出现 SMTP 账号与应用专用密码。
- 日常由你确认收件人后,只让 Agent 用凭据名(如 `smtp_gmail`)调用 `mgc_run` 执行已入库的 `send_email_script`。
- 邮件正文含客户或合同敏感信息,先把主题/正文存入 MGC,再通过 `--use_stored_content` 发信,避免模型读到全文。
- SMTP 密码轮换后,在 WebUI 或对同一 `info_owner` 执行 `mgc_save`(`update_if_exists=true`),无需把新密码贴进聊天。
适合人员
- 在本机维护 MGC Blackbox,需要让 Cursor/Trae 等 Agent 触发发信脚本、又拒绝把 Gmail 应用专用密码写进提示词的运维或 SRE
- 自己编写带 `argparse` 的 SMTP 发信脚本,希望脚本与凭据只留在 MGC、Agent 侧仅见 `mgc_run` 返回状态与结果路径的开发者
- 对邮件隐私要求高、要把正文与凭据都隔离在黑盒外、仅授权单次发送的产品或支持负责人
- 在沙箱 Agent 环境中集成邮件能力、需按文档处理 MCP 受限并走敏感执行接口的安全或平台工程师