email-pro-optimized

👤 q012315 📦 v2.2.1 ⭐ 0.0 ⬇️ 666 下載
📄 辦公效率 免費 🔑 需 API Key

📖 技能介紹


name: email-pro-optimized description: 高效能郵件工具 - 支援 QQ、Gmail、Outlook。IMAP讀、SMTP寫、OAuth 2.0、併發處理。速度比 imap-smtp-email 快 4-5 倍。 metadata: openclaw: emoji: "📧" requires: bins: - python3 packages: - requests


Email Pro Optimized - 高效能郵件工具

快速、高效的郵件管理工具,支援多賬號、多提供商、批次處理、併發獲取。

支援的郵箱型別

郵箱 認證方式 狀態
QQ 郵箱 IMAP/SMTP + 授權碼 ✅ 完全支援
Gmail OAuth 2.0 ✅ 完全支援
Outlook/Live OAuth 2.0 ✅ 完全支援

效能對比

指標 imap-smtp-email Email Pro Optimized
10封郵件 1.5-2s 0.3-0.5s
100封郵件 15-20s 2-3s
1000封郵件 150-200s 15-20s
併發處理
連線複用
多提供商

快速開始

1. 列出賬戶

python3 scripts/email-pro.py list-accounts

2. 檢查郵件(QQ 郵箱)

# 檢查最近 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 郵箱

# 自動授權 Gmail
python3 scripts/authorize.py gmail --name gmail_qiao

# 或使用預設配置
python3 scripts/authorize.py gmail

4. 授權 Outlook 郵箱

7w4.net小蔥技能站,你的AI助手技能庫。

# 自動授權(已配置 Azure 資訊)
bash scripts/authorize-outlook.sh

# 或手動授權
python3 scripts/authorize.py outlook \
  --client-id "YOUR_CLIENT_ID" \
  --client-secret "YOUR_CLIENT_SECRET" \
  --tenant-id "YOUR_TENANT_ID" \
  --name "outlook_live"

5. 檢查郵件(Gmail/Outlook)

# 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. 傳送郵件

# QQ 郵箱
python3 scripts/email-pro.py --account qq_136 send \
  --to "recipient@example.com" \
  --subject "Hello" \
  --body "Test email"

# Gmail
python3 scripts/email-pro.py --account gmail_qiao send \
  --to "recipient@example.com" \
  --subject "Hello" \
  --body "Test email"

# Outlook
python3 scripts/email-pro.py --account outlook_live send \
  --to "recipient@example.com" \
  --subject "Hello" \
  --body "Test email"

OAuth 自動重新整理

Gmail 和 Outlook 的 OAuth token 會自動重新整理,無需手動干預。

工作原理

  • 自動檢測過期 - 每次使用前自動檢查 token 是否過期
  • 提前重新整理 - 提前 5 分鐘重新整理,避免過期
  • 透明處理 - 呼叫方無需關心重新整理邏輯
  • 持久化 - 新 token 自動儲存到憑證檔案

在程式碼中使用

from scripts.oauth_handler import get_valid_token

# 獲取有效的 token(自動重新整理)
token = get_valid_token('gmail')
headers = {'Authorization': f'Bearer {token}'}

# 使用 headers 呼叫 Gmail API
response = requests.get('https://www.googleapis.com/gmail/v1/users/me/profile', headers=headers)

高階用法

搜尋郵件

python3 scripts/email-pro.py search "旅行" --limit 20

獲取完整郵件

python3 scripts/email-pro.py fetch 71197

批次併發獲取

# 獲取最近 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 郵箱配置

{
  "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 配置

{
  "outlook_live": {
    "email": "qiao6646@live.com",
    "provider": "outlook",
    "account_name": "outlook_live",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "tenant_id": "YOUR_TENANT_ID",
    "status": "✅ 已授權",
    "note": "Outlook 郵箱"
  }
}

Gmail 配置

{
  "gmail_account": {
    "email": "your-email@gmail.com",
    "provider": "gmail",
    "account_name": "gmail_account",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "status": "✅ 已授權",
    "note": "Gmail 郵箱"
  }
}

命令參考

check - 檢查郵件

python3 scripts/email-pro.py check [OPTIONS]

Options:
  --account NAME     賬戶名稱 (預設: qq_3421)
  --limit N          限制數量 (預設: 10)
  --unread           僅未讀郵件
  --mailbox NAME     郵箱名稱 (預設: INBOX)

fetch - 獲取完整郵件

python3 scripts/email-pro.py fetch UID [OPTIONS]

Options:
  --account NAME     賬戶名稱 (預設: qq_3421)
  --mailbox NAME     郵箱名稱 (預設: INBOX)

search - 搜尋郵件

python3 scripts/email-pro.py search QUERY [OPTIONS]

Options:
  --account NAME     賬戶名稱 (預設: qq_3421)
  --limit N          限制數量 (預設: 20)
  --mailbox NAME     郵箱名稱 (預設: INBOX)

send - 傳送郵件

python3 scripts/email-pro.py send [OPTIONS]

Options:
  --account NAME     賬戶名稱 (預設: qq_3421)
  --to EMAIL         收件人 (必需)
  --subject TEXT     主題 (必需)
  --body TEXT        正文 (必需)
  --html             HTML 格式
  --attach FILE...   附件

list-accounts - 列出賬戶

python3 scripts/email-pro.py list-accounts

OAuth 授權

Outlook 授權流程

  1. 獲取 Azure 應用資訊
  2. 登入 Azure Portal
  3. 建立應用註冊或使用現有應用
  4. 複製 Client ID、Client Secret、Tenant ID

  5. 執行授權指令碼 bash bash scripts/authorize-outlook.shbash python3 scripts/authorize.py outlook \ --client-id "YOUR_CLIENT_ID" \ --client-secret "YOUR_CLIENT_SECRET" \ --tenant-id "YOUR_TENANT_ID"

  6. 瀏覽器授權

  7. 指令碼會開啟瀏覽器
  8. 登入你的 Outlook 賬戶
  9. 授予許可權
  10. 令牌自動儲存到 ~/.openclaw/credentials/oauth_tokens.json

Gmail 授權流程

  1. 獲取 Google OAuth 憑證
  2. 訪問 Google Cloud Console
  3. 建立 OAuth 2.0 憑證
  4. 複製 Client ID 和 Client Secret

  5. 執行授權指令碼 bash python3 scripts/authorize.py gmail \ --client-id "YOUR_CLIENT_ID" \ --client-secret "YOUR_CLIENT_SECRET" \ --name "gmail_account"

  6. 瀏覽器授權

  7. 指令碼會開啟瀏覽器
  8. 登入你的 Gmail 賬戶
  9. 授予許可權
  10. 令牌自動儲存

最佳化點

  1. 批次 fetch - 一次獲取多封郵件,快 4.5 倍
  2. 連線複用 - 保持連線活躍,省 385ms
  3. 錯誤處理 - 跳過損壞郵件,更穩定
  4. 併發處理 - 支援多執行緒併發獲取
  5. 多提供商 - 統一介面支援 QQ、Gmail、Outlook
  6. OAuth 2.0 - 安全的令牌認證,自動重新整理

效能基準

✅ 檢查 10 封郵件: 0.5s
✅ 檢查 100 封郵件: 3s
✅ 檢查 1000 封郵件: 20s
✅ 傳送郵件: 0.6s
✅ 併發獲取 20 封: 1.5s

故障排除

連線超時

  • 檢查網路連線
  • 驗證 IMAP/SMTP 伺服器地址和埠
  • 對於 Outlook,確保已授權

認證失敗

  • QQ 郵箱:確認授權碼正確(不是密碼)
  • Outlook:重新執行授權指令碼
  • Gmail:檢查 OAuth 令牌是否過期

郵件解析失敗

  • 某些郵件格式可能不支援
  • 指令碼會自動跳過損壞的郵件

依賴

  • Python 3.6+
  • requests(用於 OAuth 和 API 呼叫)
  • 標準庫: imaplib, smtplib, email, ssl, json, argparse

安裝依賴:

pip3 install requests

檔案結構

email-pro-optimized/
├── scripts/
│   ├── email-pro.py          # 主程式
│   ├── providers.py          # 郵件提供商實現
│   ├── oauth_handler.py      # OAuth 處理
│   ├── authorize.py          # 授權工具
│   ├── authorize-outlook.sh  # Outlook 快速授權
│   └── analyze.py            # 郵件分析工具
├── SKILL.md                  # 本文件
└── README.md                 # 專案說明

常見用例

旅行監控

# 定期檢查旅行相關郵件
python3 scripts/email-pro.py search "機票|酒店|旅行" --limit 50

# 傳送監控報告
python3 scripts/email-pro.py --account qq_136 send \
  --to "your-email@example.com" \
  --subject "旅行監控報告" \
  --body "今日發現 5 條相關郵件"

郵件備份

# 匯出所有郵件為 JSON
python3 scripts/email-pro.py check --limit 1000 > backup.json

自動分類

# 使用 analyze.py 分析郵件
python3 scripts/analyze.py

更新日誌

v2.0.0 (2026-03-20)

  • ✅ 新增 Gmail 支援(OAuth 2.0)
  • ✅ 新增 Outlook 支援(OAuth 2.0)
  • ✅ 模組化提供商架構
  • ✅ 自動令牌重新整理
  • ✅ 統一命令介面

v1.0.0 (2026-03-19)

  • ✅ QQ 郵箱支援
  • ✅ 高效能批次獲取
  • ✅ 併發處理

📁 包含檔案 (13 個)

📄 README.md 13.8 KB
📄 SKILL.md 9.2 KB
📄 _meta.json 146 B
📄 package.json 158 B
📄 scripts/analyze.py 6 KB
📄 scripts/authorize-outlook.sh 611 B
📄 scripts/authorize.py 1.5 KB
📄 scripts/auto-push.py 5.5 KB
📄 scripts/email-pro.py 4.9 KB
📄 scripts/maintain.py 5.4 KB
📄 scripts/oauth_handler.py 11.6 KB
📄 scripts/providers.py 16.3 KB
📄 scripts/sync-updates.py 5.9 KB