核心用法
Custom SMTP Sender 是一款面向自动化工作流的邮件发送工具,通过调用本地 SMTP 配置实现邮件投递。用户需预先在 ~skill/smtp-config.json 中配置服务器地址、端口、认证信息及 TLS 选项,随后即可通过命令行或脚本调用 email_sender.py 发送邮件。
基础用法支持纯文本邮件,进阶功能包括:
- Markdown 转 HTML:添加
--html参数自动将 Markdown 语法渲染为富文本邮件; - 附件支持:通过
--attachments参数附加一个或多个文件; - 重试机制:网络波动或临时故障时自动重试最多 3 次;
- 日志审计:记录发送成功/失败详情,便于追踪排查。
显著优点
1. 配置即隔离:SMTP 凭据独立存储于用户目录,与主程序解耦,降低误提交代码仓库的风险;
2. 格式灵活:原生支持 Markdown 让技术团队无需手写 HTML 即可输出美观邮件;
3. 鲁棒性设计:自动重试与详细日志减少了人工介入运维的需求;
4. 轻量集成:纯 Python 实现,易于嵌入 CI/CD 流水线或定时任务。
潜在缺点与局限性
- 凭据管理风险:
smtp-config.json以明文存储密码,虽有文件权限建议(chmod 600),但缺乏加密或密钥管理服务集成; - 功能边界有限:当前版本不支持 CC/BCC、邮件模板、定时调度,复杂场景需额外开发;
- 依赖网络可达性:重试机制仅解决临时故障,对持续网络中断或 SMTP 服务封禁无兜底方案;
- 无发送队列:高并发或大批量发送时缺乏速率限制与队列削峰机制。
适合人群
- 需要低成本自动化邮件通知的开发者、运维工程师;
- 已有 SMTP 服务(如企业邮箱、SendGrid SMTP 中继)的技术团队;
- 希望快速集成 Markdown 报告发送的 CI/CD 流水线维护者。
常规风险
| 风险类别 | 说明 | 缓解建议 |
|---------|------|---------|
| 凭据泄露 | 配置文件明文存储密码,可能被备份或权限误设读取 | 使用 600 权限,考虑迁移至系统密钥环或环境变量注入 |
| 邮件滥用 | 脚本被恶意调用导致大量垃圾邮件发送 | 实施调用鉴权或速率限制,监控日志异常 |
| 配置漂移 | 多环境(开发/生产)SMTP 配置混用导致误发 | 配置文件纳入版本管理模板,环境变量覆盖敏感字段 |
| TLS 降级 | `useTLS` 配置错误或证书问题导致明文传输 | 强制 TLS 验证,定期更新根证书 |
---
> 安全认证说明:当前报告为占位生成,未执行实际安全扫描。建议上线前完成依赖库审计(Python smtplib、email 模块)、配置文件权限核查及 SMTP 连接 TLS 版本验证。