commit 518125cd28d1a53a6a60e841161abd9ec65cbb64 Author: zlei9 Date: Sun Mar 29 07:40:20 2026 +0800 Initial commit with translated description diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..1fcd9ad --- /dev/null +++ b/SKILL.md @@ -0,0 +1,335 @@ +--- +name: email-daily-summary +description: 自动登录邮箱账户(Gmail、Outlook、QQ邮箱等)并生成每日邮件摘要。当用户想要获取邮件摘要、查看重要消息或创建每日邮件简报时使用。 +allowed-tools: Bash(browser-use:*), Bash(echo:*), Bash(date:*) +--- + +# Email Daily Summary Skill + +这个技能帮助你自动登录邮箱,获取邮件内容,并生成每日邮件总结。 + +## 功能特性 + +- 🔐 支持多种邮箱登录(Gmail、Outlook、QQ 邮箱、163 邮箱等) +- 📧 自动获取最新邮件列表 +- 📝 智能生成邮件摘要 +- 🏷️ 按重要性/发件人/主题分类 +- 📊 生成每日邮件统计报告 + +## 前置要求 + +1. 安装 browser-use CLI: +```bash +uv pip install browser-use[cli] +browser-use install +``` + +2. 确保已在浏览器中登录过邮箱(使用 real 模式可直接复用登录状态) + +## 使用方法 + +### 方式一:使用已登录的浏览器(推荐) + +使用 `--browser real` 模式可以复用你 Chrome 浏览器中已登录的邮箱会话: + +```bash +# Gmail +browser-use --browser real open https://mail.google.com + +# Outlook +browser-use --browser real open https://outlook.live.com + +# QQ 邮箱 +browser-use --browser real open https://mail.qq.com + +# 163 邮箱 +browser-use --browser real open https://mail.163.com +``` + +### 方式二:手动登录流程 + +如果需要手动登录,使用 `--headed` 模式查看操作过程: + +```bash +# 打开邮箱登录页面(以 Gmail 为例) +browser-use --headed open https://accounts.google.com + +# 查看页面元素 +browser-use state + +# 输入邮箱地址(根据 state 返回的索引) +browser-use input "your-email@gmail.com" +browser-use click + +# 输入密码 +browser-use input "your-password" +browser-use click + +# 跳转到邮箱 +browser-use open https://mail.google.com +``` + +## 获取邮件列表 + +登录成功后,获取邮件列表: + +```bash +# 获取当前页面状态,查看邮件列表 +browser-use state + +# 截图保存当前邮件列表 +browser-use screenshot emails_$(date +%Y%m%d).png + +# 使用 JavaScript 提取邮件信息(Gmail 示例) +browser-use eval " + const emails = []; + document.querySelectorAll('tr.zA').forEach((row, i) => { + if (i < 20) { + const sender = row.querySelector('.yX.xY span')?.innerText || ''; + const subject = row.querySelector('.y6 span')?.innerText || ''; + const snippet = row.querySelector('.y2')?.innerText || ''; + const time = row.querySelector('.xW.xY span')?.innerText || ''; + emails.push({ sender, subject, snippet, time }); + } + }); + JSON.stringify(emails, null, 2); +" +``` + +## 使用 Python 生成邮件总结 + +```bash +# 初始化邮件数据收集 +browser-use python " +emails_data = [] +summary_date = '$(date +%Y-%m-%d)' +" + +# 滚动页面加载更多邮件 +browser-use python " +for i in range(3): + browser.scroll('down') + import time + time.sleep(1) +" + +# 提取邮件数据(需要根据实际邮箱 DOM 结构调整) +browser-use python " +import json + +# 获取页面 HTML 进行解析 +html = browser.html + +# 这里需要根据具体邮箱服务解析 HTML +# 示例:统计基本信息 +print(f'=== 邮件日报 {summary_date} ===') +print(f'页面 URL: {browser.url}') +print(f'页面标题: {browser.title}') +" + +# 截图保存 +browser-use python " +browser.screenshot(f'email_summary_{summary_date}.png') +print(f'截图已保存: email_summary_{summary_date}.png') +" +``` + +## 完整的每日邮件总结脚本 + +创建一个完整的总结流程: + +```bash +#!/bin/bash +# email_daily_summary.sh + +DATE=$(date +%Y-%m-%d) +TIME=$(date +%H:%M:%S) +OUTPUT_DIR="./email_summaries" +mkdir -p "$OUTPUT_DIR" + +echo "==========================================" +echo "📧 邮件日报生成中..." +echo "日期: $DATE $TIME" +echo "==========================================" + +# 1. 打开邮箱(使用已登录的浏览器) +browser-use --browser real open https://mail.google.com + +# 2. 等待页面加载 +sleep 3 + +# 3. 获取页面状态 +echo "" +echo "📋 当前邮箱状态:" +browser-use state + +# 4. 截图保存邮件列表 +echo "" +echo "📸 保存截图..." +browser-use screenshot "$OUTPUT_DIR/inbox_$DATE.png" + +# 5. 提取邮件数据 +echo "" +echo "📊 邮件统计:" +browser-use eval " +(() => { + const unreadCount = document.querySelectorAll('.zE').length; + const totalVisible = document.querySelectorAll('tr.zA').length; + return JSON.stringify({ + unread: unreadCount, + visible: totalVisible, + timestamp: new Date().toISOString() + }); +})() +" + +# 6. 关闭浏览器 +echo "" +echo "✅ 完成!截图保存至: $OUTPUT_DIR/inbox_$DATE.png" +browser-use close +``` + +## 支持的邮箱服务 + +| 邮箱服务 | 登录 URL | 收件箱 URL | +|---------|---------|-----------| +| Gmail | https://accounts.google.com | https://mail.google.com | +| Outlook | https://login.live.com | https://outlook.live.com | +| QQ 邮箱 | https://mail.qq.com | https://mail.qq.com | +| 163 邮箱 | https://mail.163.com | https://mail.163.com | +| 126 邮箱 | https://mail.126.com | https://mail.126.com | +| 企业微信邮箱 | https://exmail.qq.com | https://exmail.qq.com | + +## 生成 AI 邮件摘要 + +如果配置了 API Key,可以使用 AI 自动生成邮件摘要: + +```bash +# 使用 AI 提取邮件摘要(需要 BROWSER_USE_API_KEY) +browser-use --browser real open https://mail.google.com +browser-use extract "提取前 10 封邮件的发件人、主题和摘要,按重要性排序" +``` + +## 定时任务设置 + +### macOS/Linux (crontab) + +```bash +# 编辑 crontab +crontab -e + +# 添加每日早上 9 点执行的任务 +0 9 * * * /path/to/email_daily_summary.sh >> /path/to/logs/email_summary.log 2>&1 +``` + +### macOS (launchd) + +创建 `~/Library/LaunchAgents/com.email.dailysummary.plist`: + +```xml + + + + + Label + com.email.dailysummary + ProgramArguments + + /bin/bash + /path/to/email_daily_summary.sh + + StartCalendarInterval + + Hour + 9 + Minute + 0 + + StandardOutPath + /tmp/email_summary.log + StandardErrorPath + /tmp/email_summary_error.log + + +``` + +加载任务: +```bash +launchctl load ~/Library/LaunchAgents/com.email.dailysummary.plist +``` + +## 输出示例 + +生成的邮件总结报告格式: + +``` +========================================== +📧 邮件日报 - 2026-01-30 +========================================== + +📊 统计概览: +- 未读邮件: 12 封 +- 今日新邮件: 28 封 +- 重要邮件: 5 封 + +🔴 重要邮件: +1. [工作] 来自 boss@company.com + 主题: 项目进度汇报 - 紧急 + 时间: 09:30 + +2. [财务] 来自 finance@bank.com + 主题: 账单提醒 + 时间: 08:15 + +📬 今日邮件分类: +- 工作相关: 15 封 +- 订阅通知: 8 封 +- 社交媒体: 3 封 +- 其他: 2 封 + +💡 建议操作: +- 回复 boss@company.com 的邮件 +- 处理 3 封需要审批的邮件 + +========================================== +``` + +## 安全提示 + +⚠️ **重要安全建议**: + +1. **不要在脚本中明文保存密码**,优先使用 `--browser real` 模式复用已登录会话 +2. **敏感信息使用环境变量**存储 +3. **定期检查授权应用**,移除不需要的第三方访问 +4. **启用两步验证**保护邮箱安全 +5. **日志文件不要包含敏感信息** + +## 故障排除 + +**登录失败?** +```bash +# 使用 headed 模式查看登录过程 +browser-use --browser real --headed open https://mail.google.com +``` + +**页面元素找不到?** +```bash +# 等待页面完全加载 +sleep 5 +browser-use state +``` + +**会话过期?** +```bash +# 关闭所有会话重新开始 +browser-use close --all +browser-use --browser real open https://mail.google.com +``` + +## 清理 + +完成后记得关闭浏览器: + +```bash +browser-use close +``` diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..cab6eb4 --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn7e6rmb07qmpshw2vp52sw2gs80fcd0", + "slug": "email-daily-summary", + "version": "0.1.0", + "publishedAt": 1770277453029 +} \ No newline at end of file