Install
openclaw skills install @thcjp/email-toolkit-freeopenclaw skills install @thcjp/email-toolkit-free版本: 1.0.0 适用对象: 个人用户、独立开发者、一人公司 核心定位: 跨平台邮件发送与附件管理基础工具
邮件工具箱免费版是一款轻量级的跨平台邮件发送工具,通过 Python 实现邮件自动化发送。工具支持 Gmail、Outlook、Yahoo、QQ邮箱等主流邮箱服务商,以及自定义 SMTP 服务器,提供纯文本与 HTML 邮件、多附件发送、抄送密送等核心功能。
工具采用 TLS/SSL 加密连接确保邮件传输安全,支持配置文件与环境变量两种配置方式,适配不同使用场景。同时提供命令行与 Python API 两种调用方式,方便集成到自动化脚本与工作流中。免费版聚焦个人用户的邮件发送需求,配置简单、调用便捷。
输入: 用户提供邮件发送所需的指令和必要参数。 处理: 按照skill规范执行邮件发送操作,遵循单一意图原则。 输出: 返回邮件发送的执行结果,包含操作状态和输出数据。
输入: 用户提供附件管理所需的指令和必要参数。 处理: 按照skill规范执行附件管理操作,遵循单一意图原则。 输出: 返回附件管理的执行结果,包含操作状态和输出数据。
输入: 用户提供多服务商支持所需的指令和必要参数。 处理: 按照skill规范执行多服务商支持操作,遵循单一意图原则。 输出: 返回多服务商支持的执行结果,包含操作状态和输出数据。
输入: 用户提供安全特性所需的指令和必要参数。 处理: 按照skill规范执行安全特性操作,遵循单一意图原则。 输出: 返回安全特性的执行结果,包含操作状态和输出数据。
输入: 用户提供测试功能所需的指令和必要参数。
处理: 按照skill规范执行测试功能操作,遵循单一意图原则。
输出: 返回测试功能的执行结果,包含操作状态和输出数据。
技术参数:使用input_params和output_format参数控制执行行为,支持json/text/csv输出格式。
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:跨平台邮件发送与、附件管理工具、支持多邮箱服务商、邮件工具箱免费版、是一款面向个人用、户的跨平台邮件发、送工具、Python、实现邮件、自动化发送、邮箱等主流服务商、Use、when、需要消息发送、通知推送、邮件短信、通信集成时使用、不适用于垃圾信息、适用于独立开发者、企业团队和自动化、工作流场景等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
快速发送一封纯文本邮件给同事。
# 发送简单邮件
python email_sender.py --to "colleague@example.com" --subject "会议提醒" --body "明天上午10点会议室A开会,请准时参加。"
输出示例:
✅ 邮件发送成功!
收件人: colleague@example.com
主题: 会议提醒
格式: 纯文本
向团队发送包含报告和数据文件的工作邮件。
# 发送带多个附件的邮件
python email_sender.py \
--to "team@company.com" \
--subject "项目周报 - 2026年7月第三周" \
--body "您好,附件为本周项目进展报告与数据文件,请查收。" \
--attachment "report.pdf" \
--attachment "data.xlsx"
发送格式化的 HTML 通知邮件,带抄送。
python email_sender.py \
--to "all@company.com" \
--cc "manager@company.com" \
--subject "系统维护通知" \
--body '<h1>系统维护通知</h1><p>系统将于本周六凌晨2点-4点进行维护升级,届时服务将暂停。</p><p>请提前做好相关准备。</p>'
在工作目录创建 email_config.json:
{
"smtp_server": "smtp.gmail.com",
"smtp_port": 587,
"username": "your-email@gmail.com",
"password": "your-app-password",
"sender_name": "邮件助手",
"use_tls": true,
"use_ssl": false
}
Gmail 用户需使用应用专用密码:
# 发送测试邮件验证配置
python email_sender.py --to "your-email@gmail.com" --test
# 发送普通邮件
python email_sender.py --to "friend@example.com" --subject "你好" --body "这是一封测试邮件"
# 发送带附件的邮件
python email_sender.py --to "friend@example.com" --subject "报告" --body "请查收" --attachment "report.pdf"
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
| 服务商 | SMTP 服务器 | 端口 | TLS | SSL |
|---|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | 是 | - |
| Outlook/Office365 | smtp.office365.com | 587 | 是 | - |
| Yahoo | smtp.mail.yahoo.com | 587 | 是 | - |
| QQ邮箱 | smtp.qq.com | 587 | 是 | - |
| 163邮箱 | smtp.163.com | 465 | - | 是 |
| 自定义 | your.smtp.server | 587/465 | 按配置 | 按配置 |
也可以使用环境变量替代配置文件:
# Linux/macOS
export SMTP_SERVER=smtp.gmail.com
export SMTP_PORT=587
export EMAIL_USERNAME=your-email@gmail.com
export EMAIL_PASSWORD=your-app-password
export EMAIL_SENDER_NAME="邮件助手"
# Windows PowerShell
$env:SMTP_SERVER="smtp.gmail.com"
$env:SMTP_PORT="587"
$env:EMAIL_USERNAME="your-email@gmail.com"
$env:EMAIL_PASSWORD="your-app-password"
$env:EMAIL_SENDER_NAME="邮件助手"
{
"smtp_server": "smtp.163.com",
"smtp_port": 465,
"username": "your-email@163.com",
"password": "your_auth_code",
"sender_name": "邮件助手",
"use_tls": false,
"use_ssl": true
}
from email_sender import EmailSender
# 初始化发送器
sender = EmailSender("email_config.json")
# 发送带附件的邮件
result = sender.send_email(
to_email="recipient@example.com",
subject="重要文档",
body="请审阅附件中的文档。",
attachments=["document.pdf", "data.csv"]
)
if result["success"]:
print(f"邮件发送成功,附件数: {result['attachments']}")
else:
print(f"发送失败: {result['error']}")
email_config.json 加入 .gitignore# .gitignore 中添加
echo "email_config.json" >> .gitignore
# 检查文件大小
ls -lh report.pdf
# 大文件使用链接替代
python email_sender.py --to x@y.com --subject "大文件" --body "文件链接: https://drive.google.com/xxx"
Error: Authentication Failed
原因: 用户名或密码错误,或 Gmail 未使用应用专用密码。
解决:
Error: Connection Refused
原因: SMTP 服务器地址或端口错误,或防火墙拦截。
解决:
# 测试端口连通性
telnet smtp.gmail.com 587
telnet smtp.gmail.com 465
Error: Attachment Too Large
解决:
# 压缩文件
zip -s 20m archive.zip large_file.pdf
解决: 根据服务商选择正确的加密方式:
# TLS (端口 587) - Gmail/Outlook
"use_tls": true, "use_ssl": false
# SSL (端口 465) - 163邮箱
"use_tls": false, "use_ssl": true
解决: 确保 Python 脚本使用 UTF-8 编码,邮件主题与正文使用 UTF-8 编码发送。
| 参数 | 功能 | 示例 |
|---|---|---|
--to | 收件人 | --to "user@example.com" |
--cc | 抄送 | --cc "cc@example.com" |
--bcc | 密送 | --bcc "bcc@example.com" |
--subject | 主题 | --subject "邮件主题" |
--body | 正文 | --body "邮件内容" |
--attachment | 附件 | --attachment "file.pdf" |
--test | 测试邮件 | --test |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Python | 运行时 | 必需 | 官方网站下载安装 |
| Python 标准库 | 运行库 | 必需 | Python 自带(smtplib, email) |
| 邮箱账户 | 账户 | 必需 | 注册主流邮箱服务商 |
| 应用专用密码 | 凭证 | 必需 | 邮箱安全设置页生成 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |