核心用法
send-email 是一款面向自动化场景的 SMTP 邮件发送工具,支持 Python 脚本调用。核心流程为:首次配置 SMTP 服务器与发件人信息后,通过 send 子命令发送邮件。关键特性包括:
1. 密钥安全管理:强制使用 keyring 库存储邮箱密码,拒绝命令行明文传参,备用方案为 base64 编码的本地文件(权限 600)。
2. Markdown 智能处理:自动检测 Markdown 语法(标题、列表、图片等),自动转换为 HTML 并内嵌本地图片(CID 技术),无需手动指定 --inline-images。
3. 模板引擎:支持 Jinja2 风格模板(如 default.html 仿 X 风格),可自定义邮件视觉样式。
4. 企业邮箱适配:预置中国移动邮箱(smtp.gd.chinamobile.com:465/SSL)默认配置,同时兼容 Gmail、QQ、163 等主流服务商。
显著优点
- 安全设计优先:密钥与配置分离,keyring 集成符合企业安全规范;密码不落盘、不进命令历史。
- 开发体验友好:Markdown 自动内嵌图片极大简化富媒体邮件编写;单命令即可完成复杂格式邮件发送。
- 自动化友好:无头模式支持(纯 CLI),可无缝接入 CI/CD 或 cron 定时任务。
- 模板生态:内置现代响应式模板,降低前端设计门槛。
潜在缺点与局限性
- Python 依赖:需预装
keyring与markdown库,裸环境需额外配置。 - 图片大小限制:无内置压缩逻辑,大图片可能导致邮件被拒收(建议用户自行控制在 500KB/张)。
- 外链图片不支持:仅自动处理本地路径图片,
http(s)外链需手动处理。 - keyring 兼容性:部分 Linux 无图形环境时需配置后端(如
keyrings.alt),增加部署复杂度。 - 企业邮箱锁定:默认配置偏向中国移动内网,外网用户需手动覆盖 SMTP 配置。
适合人群
- 运维/数据团队:需定时发送监控报告、数据摘要。
- 产品经理/运营:需快速发送含截图的更新通知。
- 开发者:需将邮件能力集成至自动化工作流(如结合爬虫、翻译技能)。
常规风险
- 凭证泄露:若 keyring 未正确配置,回退至 base64 文件存储,虽非明文但仍存在读取风险。
- SMTP 明文传输:虽默认使用 SSL/TLS,但若用户误配
--no-tls且端口非 465,存在中间人窃听风险。 - 附件恶意文件:技能本身无附件沙箱扫描,发送可执行文件或宏文档可能触发接收方安全策略。