人生這部戲
人生這部戲

目錄

使用 AgentMail 為 OpenClaw 配置郵件發送功能

最近為 AI 助理配置郵件功能時,發現傳統郵箱服務(Gmail、Outlook)存在幾個問題:

  1. 成本:按月訂閱,多個郵箱費用累積較高
  2. API 限制:調用頻率受限,不適合自動化場景
  3. 身份隔離:AI 助理應有獨立身份,而非使用我的郵箱

在尋找解決方案時,發現了 AgentMail。

關於本文的配置方式: 本文記錄的配置步驟可以自行手動完成,也可以將本文或官方文檔提供給你的 AI Agent,讓它協助完成配置。在實際操作中,很多細節(如編寫腳本、配置環境變量、設置定時任務等)都可以交給 Agent 處理——這也是 AI 時代的便利之處。

AgentMail 是一個專為 AI Agent 設計的電郵基礎設施服務,核心特點包括:

支持通過 API 動態創建、管理郵箱:

from agentmail import AgentMail

client = AgentMail(api_key="YOUR_API_KEY")
inbox = client.inboxes.create()
方案月費郵件數Inbox
Free$03,0003
Developer$2010,00010
Startup$200150,000150

免費方案對個人使用已足夠。

  • 語義搜索(Semantic Search)
  • 自動標籤分類
  • 結構化數據提取
  • Webhook 實時通知
  • WebSocket 支持

支持發送、接收、回覆、轉發、草稿管理等功能。

以下記錄完整的配置過程。

  1. 訪問 https://console.agentmail.to
  2. 使用 Google 賬戶或郵箱註冊
  3. 創建 Inbox,記錄郵箱地址

在 Console 的 API Keys 頁面:

  1. 點擊 “Create New API Key”
  2. 命名並保存 Key(格式:am_...
  3. 妥善保管,後續配置需要
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 助理可以:

  1. 主動通知:系統異常時直接發郵件通知
  2. 服務註冊:自主完成需要郵箱驗證的註冊流程
  3. 自動化流程:接收報表、處理訂單確認等
  4. 外部溝通:與其他人直接郵件溝通
  1. API Key 安全:使用環境變量存儲,不要硬編碼或提交到 Git
  2. Rate Limiting:免費方案每 15 分鐘檢查一次較為安全
  3. 郵件存儲:免費方案提供 3GB 存儲空間
  4. 隱私保護:避免在郵件中發送敏感信息

AgentMail 為 AI Agent 提供了一個專業的電郵解決方案,解決了傳統郵箱在成本、API 限制和身份隔離方面的問題。通過與 OpenClaw 整合,可以實現 AI 助理的獨立郵件收發能力。


參考資料:

  • AgentMail 官方文檔:https://docs.agentmail.to
  • AgentMail Console:https://console.agentmail.to
  • OpenClaw 文檔:https://docs.openclaw.ai

評論

載入中...
0/200 字符