send-email

📧 安全轻量的 SMTP 邮件助手

基于 Python 标准库的 SMTP 邮件发送技能,支持主流邮箱服务,通过环境变量安全注入凭据,实现自动化邮件通知与附件发送。

收藏
12.7k
安装
2.9k
版本
v1.0.1
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

send-email 是一款轻量级的邮件发送技能,通过 Python 标准库 smtplib 实现 SMTP 协议通信。用户需在 ~/.openclaw/openclaw.json 中预配置 SMTP 服务器地址、端口、发件人邮箱及授权码/应用密码,OpenClaw 会在脚本运行时自动将配置注入为环境变量。使用时直接调用 Python 脚本,支持纯文本邮件和带附件邮件两种模式,兼容 163、Gmail、QQ 等主流邮箱服务商。

显著优点

1. 安全设计规范:凭据完全通过环境变量注入,无硬编码风险;明确禁止读取配置文件以避免敏感信息泄露;使用 SSL/TLS 加密传输。
2. 零第三方依赖:仅依赖 Python 标准库,无 pip 安装负担,部署简单可靠。

3. 多服务商兼容:内置 163、Gmail、QQ 等主流邮箱的配置参考,降低用户配置门槛。

4. 边界处理完善:参数校验、文件存在性检查、异常捕获等机制健全,错误提示清晰且不泄露敏感信息。

潜在缺点与局限性

1. 功能单一:仅支持基础的文本邮件和单附件发送,不支持 HTML 邮件、多附件、邮件模板、抄送/密送等高级功能。
2. 配置前置依赖:需要用户手动完成 SMTP 配置,对不熟悉邮箱授权码机制的用户有一定学习成本。

3. T3 来源风险:虽代码本身安全,但来源于社区个人开发者,长期维护更新存在不确定性。

4. 无发送队列机制:大量邮件发送时无速率控制,可能触发服务商反垃圾策略。

适合的目标群体

  • 需要自动化邮件通知的开发者与运维人员
  • 希望集成邮件报告功能的 Agent 工作流用户
  • 使用 163/Gmail/QQ 等个人或企业邮箱进行轻量级邮件发送的场景

使用风险

  • 凭据管理风险:配置文件权限设置不当可能导致 SMTP 密码泄露
  • 附件误发风险:脚本不校验附件内容敏感性,需用户自行确认
  • 服务商限制风险:各邮箱服务商对发送频率和数量有限制,超限可能导致账号受限
  • 网络依赖风险:SMTP 服务可用性依赖外部网络环境

安全解读

核心用法

send-email 是一个极简的 SMTP 邮件发送 Skill,通过 Python 标准库实现,无需任何第三方依赖。使用时需先在 ~/.openclaw/openclaw.json 中配置 SMTP 服务器、端口、发件人邮箱及授权码/应用密码,OpenClaw 会在运行时自动将凭证注入为环境变量,脚本本身不读取配置文件,避免敏感信息泄露。

基本命令格式

python3 ~/.openclaw/workspace/skills/send-email/send_email.py "收件人" "主题" "正文"

带附件

python3 ~/.openclaw/workspace/skills/send-email/send_email.py "收件人" "主题" "正文" "/path/to/file.pdf"

支持 163、Gmail、QQ 等主流邮箱,分别对应 465(SSL) 和 587(TLS) 端口。

显著优点

1. 安全凭证管理:采用环境变量注入模式,明确禁止读取配置文件,从源头杜绝凭证在工具输出中意外暴露,符合安全最佳实践。

2. 零第三方依赖:仅使用 Python 标准库 smtplibemail 模块,无 CVE 风险,依赖攻击面为零。

3. 传输加密保障:完整支持 SMTP_SSL (465) 和 SMTP+TLS (587),邮件内容和凭证全程加密传输。

4. 功能单一明确:代码仅 215 行,5 个文件,无动态代码加载、无权限升级诱导、无隐蔽网络行为,攻击面极小。

5. 来源可追溯:由 GitHub clawdbot 组织维护,T2 级别可信来源,提交历史公开可查。

潜在缺点与局限性

1. 缺乏输入验证:当前未对收件人邮箱格式进行校验,格式错误可能导致发送失败或信息泄露风险。

2. 无附件大小限制:未限制附件大小,超大附件可能导致内存不足或 SMTP 服务器拒绝。

3. 缺少超时机制:SMTP 连接无显式超时设置,网络异常时可能长时间挂起。

4. 日志脱敏待完善:建议进一步增强异常处理中的敏感信息脱敏,确保密码绝不打印。

5. 备用脚本存在外部调用send_email.sh 作为备用方案调用了 msmtpmutt 外部命令,虽参数已校验,但依赖系统命令存在潜在风险,建议优先使用 Python 版本。

适合人群

  • 需要在自动化工作流中集成邮件通知的开发者
  • 重视凭证安全、偏好零依赖方案的技术团队
  • 使用 163、Gmail、QQ 等主流邮箱的个人用户
  • 对第三方库安全审计有严格要求的企业环境

常规风险

  • 网络通信风险:邮件内容和元数据需发送至第三方 SMTP 服务器,虽使用 TLS/SSL 加密,但仍依赖服务商可信性。
  • 凭证配置风险:若用户误将授权码配置为登录密码(如 163 邮箱),将导致认证失败;需严格遵循文档使用授权码/App Password。
  • 附件内容风险:附件内容会完整上传至 SMTP 服务器,敏感文件需谨慎评估服务商隐私政策。

send-email 内容

手动下载zip · 4.6 kB
README.mdtext/markdown
请选择文件