基于163邮箱SMTP发送邮件功能
基于Go的163邮箱SMTP发送工具,支持HTML格式邮件、多收件人及发送日志记录,需设置邮箱授权码环境变量。
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 12 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
技能名称/描述与实际代码一致:这是一个面向163邮箱的SMTP发送工具,支持HTML、多收件人和日志。问题是元数据声称“无需环境变量/二进制”,但 SKILL.md 和 scripts/main.go 明确要求 EMAIL163_ADDRESS 和 EMAIL163_PASSWORD 环境变量并需要 Go 编译(go build/go install)。元数据与实际需要不一致。
Instruction Scope
SKILL.md 的运行指令与工具目的相符(编译、设置环境变量、运行命令)。指令不会读取系统中与功能无关的敏感文件。但文档建议使用 sudo mv 将二进制放入 /usr/local/bin(需要管理员权限)——用户应谨慎执行。
Install Mechanism
没有安装规范(instruction-only + 源码包含在包内),所以不会自动从不受信任的 URL 下载代码。需要本地使用 go build/go install,这隐含要求系统上安装 Go,但元数据未声明需要 Go。总体安装风险低,但构建依赖应在元数据中声明。
Credentials
程序合理地需要 EMAIL163_ADDRESS 和 EMAIL163_PASSWORD(用于SMTP认证),这与目的匹配。但这些环境变量在技能元数据中没有列出(元数据显示“无需环境变量”),这是不一致且会误导用户。另:程序将邮件内容写入日志(最多截断为200字符),这可能导致敏感邮件内容被写入磁盘。
Persistence & Privilege
技能没有请求始终加载(always:false),也不会修改其他技能或系统配置。它会在指定日志路径写文件(默认当前目录),如果用户指定系统日志目录(如 /var/log)需要相应权限;这是常见且与用途相关的行为。
What to consider before installing
要点与建议(非技术用户可按此操作):
- 这份代码实现与描述一致,是一个将通过 smtp.163.com 发送邮件的 Go 程序。它确实需要两个环境变量:EMAIL163_ADDRESS(发件邮箱)和 EMAIL163_PASSWORD(163 邮箱的授权码),但这些并未在技能元数据中列出——请在使用前注意并手动设置。
- 构建运行需要在本地安装 Go(go build / go install);不要在不了解的机器上随意使用 sudo 将二进制移动到系统路径。
- 安全相关:源码在建立 TLS 时设置了 InsecureSkipVerify=true,这会跳过证书验证,理论上增加了中间人攻击风险;在不受信任的网络环境中应谨慎使用。
- 日志会写入邮件内容(会截断到200字),因此不要在公共/共享目录或未加密位置保存日志,避免将敏感内容写入日志。可通过指定安全的 --log 路径或禁用日志来减小泄露风险。
- 元数据不完整(缺少必要的 env/binary 要求),这可能是打包疏忽但也可能误导用户。建议仅在信任该技能来源或在隔离环境(例如临时虚拟机或容器)中运行,并在运行前审阅源码(如已包含)。
- 若希望更安全:修复 TLS 配置以验证证书、避免将敏感邮件内容写入持久日志或对日志进行加密/权限限制,并在技能元数据中明确列出所需环境变量与构建依赖。Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplateststable
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
163邮箱发送工具
基于Go开发的163邮箱SMTP发送工具。支持HTML格式、多收件人和实时日志记录。
编译安装
# 编译生成可执行文件
go build -o email163 main.go
# 将可执行文件移动到PATH目录(可选)
sudo mv email163 /usr/local/bin/
# 或者直接使用go install
go install
基本发送
email163 --subject "邮件标题" --info "邮件内容" --to user@example.com
email163 --subject "测试邮件" --info "这是测试内容" --to user1@example.com --to user2@example.com
email163 --subject "通知" --info "内容" --to user1@example.com,user2@example.com
HTML格式邮件
email163 --subject "HTML邮件" --info "<html><body><h1>标题</h1><p>这是<b>粗体</b>内容</p></body></html>" --to user@example.com
email163 --subject "富文本通知" --info "<html><body><h2>重要通知</h2><ul><li>项目更新</li><li>系统维护</li></ul></body></html>" --to admin@example.com
带日志记录
email163 --subject "邮件标题" --info "内容" --to user@example.com --log ./logs
email163 --subject "重要通知" --info "内容" --to user@example.com --log /var/log/email
参数说明
--subject <标题>: 邮件标题(必需)--info <内容>: 邮件内容,支持HTML格式(必需)--to <邮箱>: 收件人邮箱地址,可多次使用(必需)--log <路径>: 日志文件保存路径(可选,默认当前目录)--help: 显示帮助信息
多收件人方式
# 方式1:多次使用 --to 参数
email163 --subject "群发邮件" --info "内容" --to user1@example.com --to user2@example.com --to user3@example.com
# 方式2:逗号分隔多个邮箱
email163 --subject "群发邮件" --info "内容" --to user1@example.com,user2@example.com,user3@example.com
HTML内容示例
# 简单HTML
email163 --subject "格式化邮件" --info "<html><body><p>普通文本</p><p><b>粗体文本</b></p><p><i>斜体文本</i></p></body></html>" --to user@example.com
# 复杂HTML结构
email163 --subject "详细通知" --info "<html><body><h2>系统通知</h2><p>尊敬的用户:</p><ul><li>系统将于今晚维护</li><li>预计维护时间2小时</li></ul><p>如有疑问请联系:<a href='mailto:support@example.com'>技术支持</a></p></body></html>" --to user@example.com
日志功能
- 日志文件格式:
YYYY_MM_DD_email.log - 记录内容:发送时间、标题、收件人、内容、结果
- 同日期自动追加,新日期创建新文件
- 自动创建日志目录
注意事项:
- 需要设置环境变量
EMAIL163_ADDRESS和EMAIL163_PASSWORD EMAIL163_PASSWORD应使用163邮箱的授权码,不是登录密码- HTML内容以
<html>开头时使用用户格式,否则自动包装 - 邮箱地址会进行格式验证
- 日志内容超过200字符时会自动截断
环境变量设置
export EMAIL163_ADDRESS="your-email@163.com"
export EMAIL163_PASSWORD="your-authorization-code"
获取163邮箱授权码:
- 登录163邮箱设置
- 开启SMTP服务
- 生成授权码用作密码
Files
3 totalSelect a file
Select a file to preview.
Comments
Loading comments…
