| name | email-daily-summary |
| description | Automatically 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. |
| allowed-tools | Bash(browser-use:*), Bash(echo:*), Bash(date:*) |
| display_name | email-daily-summary |
| display_name_en | email-daily-summary |
| description_zh | Automatically 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. |
| description_en | Automatically 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. |
| visibility | public |
Email Daily Summary Skill
这个技能帮助你自动登录邮箱,获取邮件内容,并生成每日邮件总结。
功能特性
- 🔐 支持多种邮箱登录(Gmail、Outlook、QQ 邮箱、163 邮箱等)
- 📧 自动获取最新邮件列表
- 📝 智能生成邮件摘要
- 🏷️ 按重要性/发件人/主题分类
- 📊 生成每日邮件统计报告
前置要求
- 安装 browser-use CLI:
uv pip install browser-use[cli]
browser-use install
- 确保已在浏览器中登录过邮箱(使用 real 模式可直接复用登录状态)
使用方法
方式一:使用已登录的浏览器(推荐)
使用 --browser real 模式可以复用你 Chrome 浏览器中已登录的邮箱会话:
browser-use --browser real open https://mail.google.com
browser-use --browser real open https://outlook.live.com
browser-use --browser real open https://mail.qq.com
browser-use --browser real open https://mail.163.com
方式二:手动登录流程
如果需要手动登录,使用 --headed 模式查看操作过程:
browser-use --headed open https://accounts.google.com
browser-use state
browser-use input <email_input_index> "your-email@gmail.com"
browser-use click <next_button_index>
browser-use input <password_input_index> "your-password"
browser-use click <login_button_index>
browser-use open https://mail.google.com
获取邮件列表
登录成功后,获取邮件列表:
browser-use state
browser-use screenshot emails_$(date +%Y%m%d).png
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);
"