$npx -y skills add berabuddies/Semia --skill email-daily-summaryAutomatically logs into email accounts (Gmail, Outlook, QQ Mail, etc.) and generates daily email summaries. Use when the user wants to get a summary of their emails, check important messages, or create daily email digests.
| 1 | # Email Daily Summary Skill |
| 2 | |
| 3 | 这个技能帮助你自动登录邮箱,获取邮件内容,并生成每日邮件总结。 |
| 4 | |
| 5 | ## 功能特性 |
| 6 | |
| 7 | - 🔐 支持多种邮箱登录(Gmail、Outlook、QQ 邮箱、163 邮箱等) |
| 8 | - 📧 自动获取最新邮件列表 |
| 9 | - 📝 智能生成邮件摘要 |
| 10 | - 🏷️ 按重要性/发件人/主题分类 |
| 11 | - 📊 生成每日邮件统计报告 |
| 12 | |
| 13 | ## 前置要求 |
| 14 | |
| 15 | 1. 安装 browser-use CLI: |
| 16 | ```bash |
| 17 | uv pip install browser-use[cli] |
| 18 | browser-use install |
| 19 | ``` |
| 20 | |
| 21 | 2. 确保已在浏览器中登录过邮箱(使用 real 模式可直接复用登录状态) |
| 22 | |
| 23 | ## 使用方法 |
| 24 | |
| 25 | ### 方式一:使用已登录的浏览器(推荐) |
| 26 | |
| 27 | 使用 `--browser real` 模式可以复用你 Chrome 浏览器中已登录的邮箱会话: |
| 28 | |
| 29 | ```bash |
| 30 | # Gmail |
| 31 | browser-use --browser real open https://mail.google.com |
| 32 | |
| 33 | # Outlook |
| 34 | browser-use --browser real open https://outlook.live.com |
| 35 | |
| 36 | # QQ 邮箱 |
| 37 | browser-use --browser real open https://mail.qq.com |
| 38 | |
| 39 | # 163 邮箱 |
| 40 | browser-use --browser real open https://mail.163.com |
| 41 | ``` |
| 42 | |
| 43 | ### 方式二:手动登录流程 |
| 44 | |
| 45 | 如果需要手动登录,使用 `--headed` 模式查看操作过程: |
| 46 | |
| 47 | ```bash |
| 48 | # 打开邮箱登录页面(以 Gmail 为例) |
| 49 | browser-use --headed open https://accounts.google.com |
| 50 | |
| 51 | # 查看页面元素 |
| 52 | browser-use state |
| 53 | |
| 54 | # 输入邮箱地址(根据 state 返回的索引) |
| 55 | browser-use input <email_input_index> "your-email@gmail.com" |
| 56 | browser-use click <next_button_index> |
| 57 | |
| 58 | # 输入密码 |
| 59 | browser-use input <password_input_index> "your-password" |
| 60 | browser-use click <login_button_index> |
| 61 | |
| 62 | # 跳转到邮箱 |
| 63 | browser-use open https://mail.google.com |
| 64 | ``` |
| 65 | |
| 66 | ## 获取邮件列表 |
| 67 | |
| 68 | 登录成功后,获取邮件列表: |
| 69 | |
| 70 | ```bash |
| 71 | # 获取当前页面状态,查看邮件列表 |
| 72 | browser-use state |
| 73 | |
| 74 | # 截图保存当前邮件列表 |
| 75 | browser-use screenshot emails_$(date +%Y%m%d).png |
| 76 | |
| 77 | # 使用 JavaScript 提取邮件信息(Gmail 示例) |
| 78 | browser-use eval " |
| 79 | const emails = []; |
| 80 | document.querySelectorAll('tr.zA').forEach((row, i) => { |
| 81 | if (i < 20) { |
| 82 | const sender = row.querySelector('.yX.xY span')?.innerText || ''; |
| 83 | const subject = row.querySelector('.y6 span')?.innerText || ''; |
| 84 | const snippet = row.querySelector('.y2')?.innerText || ''; |
| 85 | const time = row.querySelector('.xW.xY span')?.innerText || ''; |
| 86 | emails.push({ sender, subject, snippet, time }); |
| 87 | } |
| 88 | }); |
| 89 | JSON.stringify(emails, null, 2); |
| 90 | " |
| 91 | ``` |
| 92 | |
| 93 | ## 使用 Python 生成邮件总结 |
| 94 | |
| 95 | ```bash |
| 96 | # 初始化邮件数据收集 |
| 97 | browser-use python " |
| 98 | emails_data = [] |
| 99 | summary_date = '$(date +%Y-%m-%d)' |
| 100 | " |
| 101 | |
| 102 | # 滚动页面加载更多邮件 |
| 103 | browser-use python " |
| 104 | for i in range(3): |
| 105 | browser.scroll('down') |
| 106 | import time |
| 107 | time.sleep(1) |
| 108 | " |
| 109 | |
| 110 | # 提取邮件数据(需要根据实际邮箱 DOM 结构调整) |
| 111 | browser-use python " |
| 112 | import json |
| 113 | |
| 114 | # 获取页面 HTML 进行解析 |
| 115 | html = browser.html |
| 116 | |
| 117 | # 这里需要根据具体邮箱服务解析 HTML |
| 118 | # 示例:统计基本信息 |
| 119 | print(f'=== 邮件日报 {summary_date} ===') |
| 120 | print(f'页面 URL: {browser.url}') |
| 121 | print(f'页面标题: {browser.title}') |
| 122 | " |
| 123 | |
| 124 | # 截图保存 |
| 125 | browser-use python " |
| 126 | browser.screenshot(f'email_summary_{summary_date}.png') |
| 127 | print(f'截图已保存: email_summary_{summary_date}.png') |
| 128 | " |
| 129 | ``` |
| 130 | |
| 131 | ## 完整的每日邮件总结脚本 |
| 132 | |
| 133 | 创建一个完整的总结流程: |
| 134 | |
| 135 | ```bash |
| 136 | #!/bin/bash |
| 137 | # email_daily_summary.sh |
| 138 | |
| 139 | DATE=$(date +%Y-%m-%d) |
| 140 | TIME=$(date +%H:%M:%S) |
| 141 | OUTPUT_DIR="./email_summaries" |
| 142 | mkdir -p "$OUTPUT_DIR" |
| 143 | |
| 144 | echo "==========================================" |
| 145 | echo "📧 邮件日报生成中..." |
| 146 | echo "日期: $DATE $TIME" |
| 147 | echo "==========================================" |
| 148 | |
| 149 | # 1. 打开邮箱(使用已登录的浏览器) |
| 150 | browser-use --browser real open https://mail.google.com |
| 151 | |
| 152 | # 2. 等待页面加载 |
| 153 | sleep 3 |
| 154 | |
| 155 | # 3. 获取页面状态 |
| 156 | echo "" |
| 157 | echo "📋 当前邮箱状态:" |
| 158 | browser-use state |
| 159 | |
| 160 | # 4. 截图保存邮件列表 |
| 161 | echo "" |
| 162 | echo "📸 保存截图..." |
| 163 | browser-use screenshot "$OUTPUT_DIR/inbox_$DATE.png" |
| 164 | |
| 165 | # 5. 提取邮件数据 |
| 166 | echo "" |
| 167 | echo "📊 邮件统计:" |
| 168 | browser-use eval " |
| 169 | (() => { |
| 170 | const unreadCount = document.querySelectorAll('.zE').length; |
| 171 | const totalVisible = document.querySelectorAll('tr.zA').length; |
| 172 | return JSON.stringify({ |
| 173 | unread: unreadCount, |
| 174 | visible: totalVisible, |
| 175 | timestamp: new Date().toISOString() |
| 176 | }); |
| 177 | })() |
| 178 | " |
| 179 | |
| 180 | # 6. 关闭浏览器 |
| 181 | echo "" |
| 182 | echo "✅ 完成!截图保存至: $OUTPUT_DIR/inbox_$DATE.png" |
| 183 | browser-use close |
| 184 | ``` |
| 185 | |
| 186 | ## 支持的邮箱服务 |
| 187 | |
| 188 | | 邮箱服务 | 登录 URL | 收件箱 URL | |
| 189 | |---------|---------|-----------| |
| 190 | | Gmail | https://accounts.google.com | https://mail.google.com | |
| 191 | | Outlook | https://login.live.com | https://outlook.live.com | |
| 192 | | QQ 邮箱 | https://mail.qq.com | https://mail.qq.com | |
| 193 | | 163 邮箱 | https://mail.163.com | https://mail.163.com | |
| 194 | | 126 邮箱 | https://mail.126.com | https://mail.126.com | |
| 195 | | 企业微信邮箱 | https://exmail.qq.com | https://exmail.qq.com | |
| 196 | |
| 197 | ## 生成 AI 邮件摘要 |
| 198 | |
| 199 | 如果配置了 API Key,可以使用 AI 自动生成邮件摘要: |
| 200 | |
| 201 | ```bash |
| 202 | # 使用 AI 提取邮件摘要(需要 BROWSER_USE_API_KEY) |
| 203 | browser-use --browser real open https://mail.google.com |
| 204 | browser-use extract "提取前 10 封邮件的发件人、主题和摘要,按重要性排序" |
| 205 | ``` |
| 206 | |
| 207 | ## 定时任务设置 |
| 208 | |
| 209 | ### macOS/Linux (crontab) |
| 210 | |
| 211 | ```bash |
| 212 | # 编辑 crontab |
| 213 | crontab -e |
| 214 | |
| 215 | # 添加每日早上 9 点执行的任务 |
| 216 | 0 9 * * * /path/to/email_daily_summary.sh >> /path/to/logs/email_summary.log 2>&1 |
| 217 | ``` |
| 218 | |
| 219 | ### macOS (launchd) |
| 220 | |
| 221 | 创建 `~/Library/LaunchAgents/com.email.dailysummary.plist`: |
| 222 | |
| 223 | ```xml |
| 224 | <?xml version="1.0" encoding="UTF-8"?> |
| 225 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| 226 | <plist version="1.0"> |
| 227 | <dict> |
| 228 | <key>Label</key> |
| 229 | <string>com.email.dailysummary</string> |
| 230 | <key>ProgramArguments</key> |
| 231 | <array> |
| 232 | <string>/bin/bash</string> |
| 233 | <string>/path/to/email_daily_summary.sh</string> |
| 234 | </a |