Email Pro Optimized - 高性能邮件工具
快速、高效的邮件管理工具,支持多账号、多提供商、批量处理、并发获取。
支持的邮箱类型
| 邮箱 | 认证方式 | 状态 |
|---|
| QQ 邮箱 | IMAP/SMTP + 授权码 | ✅ 完全支持 |
| Gmail |
OAuth 2.0 | ✅ 完全支持 |
|
Outlook/Live | OAuth 2.0 | ✅ 完全支持 |
性能对比
| 指标 | imap-smtp-email | Email Pro Optimized |
|---|
| 10封邮件 | 1.5-2秒 | 0.3-0.5秒 |
| 100封邮件 |
15-20秒 | 2-3秒 |
|
1000封邮件 | 150-200秒 | 15-20秒 |
|
并发处理 | ❌ | ✅ |
|
连接复用 | ❌ | ✅ |
|
多提供商 | ❌ | ✅ |
快速开始
1. 列出账户
bash
python3 scripts/email-pro.py list-accounts
2. 检查邮件(QQ 邮箱)
bash
检查最近 10 封
python3 scripts/email-pro.py --account qq_3421 check --limit 10
仅检查未读
python3 scripts/email-pro.py --account qq_3421 check --unread
使用其他账户
python3 scripts/email-pro.py --account qq_136 check --limit 5
3. 授权 Gmail 邮箱
bash
自动授权 Gmail
python3 scripts/authorize.py gmail --name gmail_qiao
或使用默认配置
python3 scripts/authorize.py gmail
4. 授权 Outlook 邮箱
bash
自动授权(已配置 Azure 信息)
bash scripts/authorize-outlook.sh
或手动授权
python3 scripts/authorize.py outlook \
--client-id 你的客户端ID \
--client-secret 你的客户端密钥 \
--tenant-id 你的租户ID \
--name outlook_live
5. 检查邮件(Gmail/Outlook)
bash
Gmail
python3 scripts/email-pro.py --account gmail_qiao check --limit 10
Outlook
python3 scripts/email-pro.py --account outlook_live check --limit 10
6. 发送邮件
bash
QQ 邮箱
python3 scripts/email-pro.py --account qq_136 send \
--to 收件人@example.com \
--subject 你好 \
--body 测试邮件
Gmail
python3 scripts/email-pro.py --account gmail_qiao send \
--to 收件人@example.com \
--subject 你好 \
--body 测试邮件
Outlook
python3 scripts/email-pro.py --account outlook_live send \
--to 收件人@example.com \
--subject 你好 \
--body 测试邮件
OAuth 自动刷新
Gmail 和 Outlook 的 OAuth 令牌会自动刷新,无需手动干预。
工作原理
- - 自动检测过期 - 每次使用前自动检查令牌是否过期
- 提前刷新 - 提前 5 分钟刷新,避免过期
- 透明处理 - 调用方无需关心刷新逻辑
- 持久化 - 新令牌自动保存到凭证文件
在代码中使用
python
from scripts.oauthhandler import getvalid_token
获取有效的令牌(自动刷新)
token = get
validtoken(gmail)
headers = {Authorization: fBearer {token}}
使用 headers 调用 Gmail API
response = requests.get(https://www.googleapis.com/gmail/v1/users/me/profile, headers=headers)
高级用法
搜索邮件
bash
python3 scripts/email-pro.py search 旅行 --limit 20
获取完整邮件
bash
python3 scripts/email-pro.py fetch 71197
批量并发获取
bash
获取最近 100 封邮件的完整内容(5 个线程并发)
python3 scripts/email-pro.py check --limit 100 | \
jq -r .[].uid | \
xargs -I {} python3 scripts/email-pro.py fetch {}
配置
配置文件位置
~/.openclaw/credentials/email-accounts.json
QQ 邮箱配置
json
{
qq_3421: {
email: 342187916@qq.com,
auth_code: xxxx,
smtp_server: smtp.qq.com,
smtp_port: 587,
imap_server: imap.qq.com,
imap_port: 993,
provider: imap,
status: ✅ 正常,
note: 接收邮箱
}
}
Outlook 配置
json
{
outlook_live: {
email: qiao6646@live.com,
provider: outlook,
account
name: outlooklive,
client_id: 你的客户端ID,
client_secret: 你的客户端密钥,
tenant_id: 你的租户ID,
status: ✅ 已授权,
note: Outlook 邮箱
}
}
Gmail 配置
json
{
gmail_account: {
email: 你的邮箱@gmail.com,
provider: gmail,
account
name: gmailaccount,
client_id: 你的客户端ID,
client_secret: 你的客户端密钥,
status: ✅ 已授权,
note: Gmail 邮箱
}
}
命令参考
check - 检查邮件
bash
python3 scripts/email-pro.py check [选项]
选项:
--account 名称 账户名称 (默认: qq_3421)
--limit 数量 限制数量 (默认: 10)
--unread 仅未读邮件
--mailbox 名称 邮箱名称 (默认: INBOX)
fetch - 获取完整邮件
bash
python3 scripts/email-pro.py fetch UID [选项]
选项:
--account 名称 账户名称 (默认: qq_3421)
--mailbox 名称 邮箱名称 (默认: INBOX)
search - 搜索邮件
bash
python3 scripts/email-pro.py search 查询条件 [选项]
选项:
--account 名称 账户名称 (默认: qq_3421)
--limit 数量 限制数量 (默认: 20)
--mailbox 名称 邮箱名称 (默认: INBOX)
send - 发送邮件
bash
python3 scripts/email-pro.py send [选项]
选项:
--account 名称 账户名称 (默认: qq_3421)
--to 邮箱 收件人 (必需)
--subject 主题 主题 (必需)
--body 正文 正文 (必需)
--html HTML 格式
--attach 文件... 附件
list-accounts - 列出账户
bash
python3 scripts/email-pro.py list-accounts
OAuth 授权
Outlook 授权流程
- 1. 获取 Azure 应用信息
- 登录 Azure 门户
- 创建应用注册或使用现有应用
- 复制客户端ID、客户端密钥、租户ID
- 2. 运行授权脚本
bash
bash scripts/authorize-outlook.sh
或
bash
python3 scripts/authorize.py outlook \
--client-id 你的客户端ID \
--client-secret 你的客户端密钥 \
--tenant-id 你的租户ID
- 3. 浏览器授权
- 脚本会打开浏览器
- 登录你的 Outlook 账户
- 授予权限
- 令牌自动保存到 ~/.openclaw/credentials/oauth_tokens.json
Gmail 授权流程
- 1. 获取 Google OAuth 凭证
- 访问 Google Cloud 控制台
- 创建 OAuth 2.0 凭证
- 复制客户端ID和客户端密钥
- 2. 运行授权脚本
bash
python3 scripts/authorize.py gmail \
--client-id 你的客户端ID \
--client-secret 你的客户端密钥 \
--name gmail_account
- 3. 浏览器授权
- 脚本会打开浏览器
- 登录你的 Gmail 账户
- 授予权限
- 令牌自动保存
优化