运行时依赖
无特殊依赖
安装命令
点击复制官方npx clawhub@latest install email-notifier
镜像加速npx clawhub@latest install email-notifier --registry https://cn.longxiaskill.com 镜像可用
技能文档
电子邮件通知器 轻量级、可重用的电子邮件模块,仅依赖 Python 标准库。 快速开始 发送电子邮件(SMTP)
from scripts.sender import EmailSender
sender = EmailSender(provider="gmail")
sender.send(
to="recipient@example.com",
subject="警报:系统状态",
body="CPU 使用率超过 90%",
html_body="警报
CPU 使用率超过 90%
"
)
检查新电子邮件(IMAP)
from scripts.receiver import EmailReceiver
receiver = EmailReceiver(provider="outlook", mailbox="INBOX")
emails = receiver.fetch_unread(limit=5)
for email in emails:
print(f"来自:{email['from']}, 主题:{email['subject']}")
配置
有三种配置方法,按优先级排序:环境变量 > 配置文件 > 交互式。
方法 1:环境变量
在技能目录中创建 .env 文件:
# 提供商:gmail, outlook, qq, custom
EMAIL_PROVIDER=gmail
# SMTP 设置
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# IMAP 设置(可选,用于接收)
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
IMAP_USERNAME=your-email@gmail.com
IMAP_PASSWORD=your-app-password
# 默认发件人(可选)
DEFAULT_FROM=no-reply@gmail.com
方法 2:配置文件
在技能目录中创建 config.json 文件:
{
"provider": "gmail",
"smtp": {
"server": "smtp.gmail.com",
"port": 587,
"username": "your-email@gmail.com",
"password": "your-app-password"
},
"imap": {
"server": "imap.gmail.com",
"port": 993,
"username": "your-email@gmail.com",
"password": "your-app-password"
}
}
方法 3:交互式配置
运行配置向导:
python scripts/configurer.py
提供商设置
提供商 | SMTP 服务器 | SMTP 端口 | IMAP 服务器 | IMAP 端口
-----|-----|-----|-----|-----
Gmail | smtp.gmail.com | 587 | imap.gmail.com | 993
Outlook | smtp.office365.com | 587 | outlook.office365.com | 993
QQ | smtp.qq.com | 465/587 | imap.qq.com | 993
自定义 | your-server | your-port | your-server | your-port
注意:对于 Gmail/Outlook/QQ,启用 2FA 并生成应用密码,而不是使用登录密码。
脚本参考
脚本 | 目的
-----|-----
scripts/sender.py | SMTP 电子邮件发送模块
scripts/receiver.py | IMAP/POP3 电子邮件接收模块
scripts/configurer.py | 交互式配置向导
scripts/validator.py | 测试和验证电子邮件配置
使用示例
警报通知
from scripts.sender import EmailSender
from scripts.config import load_config
config = load_config()
sender = EmailSender(config=config)
sender.send(
to="admin@example.com",
subject="警报:服务器状态",
body=f"服务器 {hostname} 处于高负载\nCPU:{cpu}%\n内存:{mem}%",
priority="高"
)
每日摘要
from scripts.receiver import EmailReceiver
receiver = EmailReceiver(provider="outlook")
unread = receiver.fetch_unread(folder="INBOX", limit=20)
if unread:
summary = f"您有 {len(unread)} 封未读电子邮件"
# 发送摘要到自己或仪表盘
批量发送通知
python
from scripts.sender import EmailSender
sender = EmailSender(provider="gmail")
recipients = ["user1@example.com", "user2@example.com"]
for recipient in recipients:
sender.send(
to=recipient,
subject="会议提醒",
body="提醒:团队会议于 3 点"
)
```
使用场景示例
场景 1:系统告警通知
用户请求:服务器 CPU 使用率超过 90%,发送邮件告警
处理流程:调用 email-notifier 技能,配置 SMTP 服务器,发送邮件给管理员,确认发送成功
预期输出:已完成:告警邮件发送,收件人:admin@example.com,主题:警报:服务器状态 - CPU 使用率 90%,发送时间:2 秒
成功指标:邮件发送成功率 100%,发送时间 <5 秒,邮件格式正确
场景 2:GitHub 报告发送
用户请求:把今天的 GitHub 趋势报告发送给我
处理流程:调用 github-analysis-report 生成报告,调用 email-notifier 发送报告,添加 HTML 格式美化,确认发送成功
预期输出:已完成:GitHub 报告邮件发送,收件人:2197057577@qq.com,主题:GitHub Trending 每日报告 - 2026-03-08,附件:github-trending-2026-03-08.md,发送时间:3 秒
成功指标:报告格式完整,HTML 渲染正确,附件正确添加
场景 3:批量会议通知
用户请求:给团队成员发送会议提醒,下午 3 点开会
处理流程:获取团队成员邮箱列表,创建会议通知模板,批量发送邮件,统计发送结果
预期输出:已完成:批量会议通知发送,发送数量:10 封,成功:10 封,失败:0 封,总耗时:15 秒
成功指标:发送成功率 >98%,邮件内容一致,无重复发送
成功指标
指标 | 目标值 | 测量方式
-----|-----|-----
邮件发送成功率 | >98% | 成功发送数/总发送数
平均发送时间 | <5 秒 | 从命令到发送完成时间
邮件格式正确率 | 100% | HTML/纯文本格式验证
用户满意度 | >4.5/5 | 用户评分
配置成功率 | >95% | 首次配置成功数/总配置数
相关文件
主程序:skills/email-notifier/sender.py, skills/email-notifier/receiver.py
配置工具:skills/email-notifier/configurer.py
依赖声明:skills/email-notifier/SKILL.md
角色定义
GitHub 开发助手,擅长代码审查、PR 管理、Issue 跟踪和仓库自动化。
成功指标
PR/Issue 处理准确率 | >95%
代码审查建议采纳率 | >80%
自动化任务成功率 | >90%
使用场景
当用户需要审查 GitHub PR 代码时,自动分析代码变更并提供改进建议。
当用户需要跟踪 Issue 进度时,自动查询状态并生成进度报告。
当用户需要批量处理仓库操作时,自动执行并生成操作日志。