使用 AgentMail 為 OpenClaw 配置郵件發送功能
目錄
背景
最近為 AI 助理配置郵件功能時,發現傳統郵箱服務(Gmail、Outlook)存在幾個問題:
- 成本:按月訂閱,多個郵箱費用累積較高
- API 限制:調用頻率受限,不適合自動化場景
- 身份隔離:AI 助理應有獨立身份,而非使用我的郵箱
在尋找解決方案時,發現了 AgentMail。
關於本文的配置方式: 本文記錄的配置步驟可以自行手動完成,也可以將本文或官方文檔提供給你的 AI Agent,讓它協助完成配置。在實際操作中,很多細節(如編寫腳本、配置環境變量、設置定時任務等)都可以交給 Agent 處理——這也是 AI 時代的便利之處。
AgentMail 介紹
AgentMail 是一個專為 AI Agent 設計的電郵基礎設施服務,核心特點包括:
1. API 優先設計
支持通過 API 動態創建、管理郵箱:
from agentmail import AgentMail
client = AgentMail(api_key="YOUR_API_KEY")
inbox = client.inboxes.create()2. 按量付費
| 方案 | 月費 | 郵件數 | Inbox |
|---|---|---|---|
| Free | $0 | 3,000 | 3 |
| Developer | $20 | 10,000 | 10 |
| Startup | $200 | 150,000 | 150 |
免費方案對個人使用已足夠。
3. AI 原生功能
- 語義搜索(Semantic Search)
- 自動標籤分類
- 結構化數據提取
- Webhook 實時通知
- WebSocket 支持
4. 完整的郵件操作
支持發送、接收、回覆、轉發、草稿管理等功能。
配置 OpenClaw 使用 AgentMail
以下記錄完整的配置過程。
第一步:註冊並創建郵箱
- 訪問 https://console.agentmail.to
- 使用 Google 賬戶或郵箱註冊
- 創建 Inbox,記錄郵箱地址
第二步:獲取 API Key
在 Console 的 API Keys 頁面:
- 點擊 “Create New API Key”
- 命名並保存 Key(格式:
am_...) - 妥善保管,後續配置需要
第三步:安裝 SDK
pip install agentmail python-dotenv第四步:編寫封裝模塊
創建 agentmail_client.py:
#!/usr/bin/env python3
"""AgentMail 郵件客戶端封裝"""
import os
import json
from datetime import datetime
from pathlib import Path
from dotenv import load_dotenv
from agentmail import AgentMail
# 加載環境變量
load_dotenv(Path(__file__).parent.parent / '.env.agentmail')
class AgentMailClient:
def __init__(self):
api_key = os.getenv('AGENTMAIL_API_KEY')
self.client = AgentMail(api_key=api_key)
self.inbox_id = os.getenv('AGENTMAIL_INBOX_ID')
self.last_check_file = Path('data/agentmail_last_check.json')
def list_messages(self, limit=10):
"""列出郵件"""
response = self.client.inboxes.messages.list(self.inbox_id, limit=limit)
return [
{
'message_id': msg.message_id,
'subject': msg.subject,
'from': msg.from_,
'preview': msg.preview,
'created_at': str(msg.created_at)
}
for msg in response.messages
]
def send_message(self, to, subject, text, html=None):
"""發送郵件"""
return self.client.inboxes.messages.send(
self.inbox_id,
to=to,
subject=subject,
text=text,
html=html or text
)
def check_new_messages(self):
"""檢查新郵件(基於上次檢查時間)"""
last_check = self._get_last_check_time()
messages = self.list_messages(limit=20)
new_messages = [
msg for msg in messages
if last_check is None or msg['created_at'] > last_check
]
self._update_last_check_time()
return new_messages第五步:配置環境變量
創建 .env.agentmail:
AGENTMAIL_API_KEY=your_api_key_here
AGENTMAIL_INBOX_ID=your_inbox@agentmail.to注意將此文件加入 .gitignore,避免提交到版本控制。
第六步:配置定時檢查任務
創建 check_agentmail.py:
#!/usr/bin/env python3
"""檢查新郵件腳本"""
import sys
sys.path.insert(0, '/path/to/your/workspace')
from scripts.agentmail_client import AgentMailClient
def main():
client = AgentMailClient()
new_messages = client.check_new_messages()
if new_messages:
print(f"📬 收到 {len(new_messages)} 封新郵件")
for msg in new_messages:
print(f" - {msg['subject']} (來自: {msg['from']})")
return 0
else:
print("📭 沒有新郵件")
return 1
if __name__ == "__main__":
exit(main())在 OpenClaw 的 jobs.json 中添加定時任務:
{
"id": "agentmail-check-new-emails",
"name": "AgentMail 新郵件檢查",
"enabled": true,
"schedule": {
"kind": "cron",
"expr": "*/15 * * * *",
"tz": "Asia/Hong_Kong"
},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "執行 AgentMail 新郵件檢查..."
}
}第七步:測試發送
from scripts.agentmail_client import AgentMailClient
client = AgentMailClient()
result = client.send_message(
to="recipient@example.com",
subject="測試郵件",
text="這是一封測試郵件"
)
print(f"發送成功: {result.message_id}")使用場景
配置完成後,AI 助理可以:
- 主動通知:系統異常時直接發郵件通知
- 服務註冊:自主完成需要郵箱驗證的註冊流程
- 自動化流程:接收報表、處理訂單確認等
- 外部溝通:與其他人直接郵件溝通
注意事項
- API Key 安全:使用環境變量存儲,不要硬編碼或提交到 Git
- Rate Limiting:免費方案每 15 分鐘檢查一次較為安全
- 郵件存儲:免費方案提供 3GB 存儲空間
- 隱私保護:避免在郵件中發送敏感信息
總結
AgentMail 為 AI Agent 提供了一個專業的電郵解決方案,解決了傳統郵箱在成本、API 限制和身份隔離方面的問題。通過與 OpenClaw 整合,可以實現 AI 助理的獨立郵件收發能力。
參考資料:
- AgentMail 官方文檔:https://docs.agentmail.to
- AgentMail Console:https://console.agentmail.to
- OpenClaw 文檔:https://docs.openclaw.ai
評論
載入中...