乐于分享
好东西不私藏

OpenClaw 实战连载②:邮件自动处理,从 35 分钟到 8 分钟

OpenClaw 实战连载②:邮件自动处理,从 35 分钟到 8 分钟

开篇

上篇文章《OpenClaw 实战连载①:AI 新闻推送,上篇说"1+1>2",工作流在这[1]》里,我提到过这个工作流:

"早上 7 点自动执行:读取昨晚的邮件 → 提取待办事项 → 写入 Excel → 生成 Word 日报 → 发送到 Telegram"

文章发出去后,有读者留言:

"邮件自动处理具体怎么弄?Gmail 能接吗?"

当然能。我用的是 Gmail,每天早上一睁眼,AI 已经帮我把昨晚的邮件处理完了。

这是第 2 篇:邮件自动处理。


一、工作流目标

场景: 我每天晚上有 20-30 封新邮件,手动处理要 30-40 分钟。

之前:

  • 逐封阅读,判断优先级
  • 回复常见问题("什么时候有空?""这个需求能做吗?")
  • 把待办事项记到 Excel
  • 重要邮件标星,垃圾邮件归档
  • 耗时:30-40 分钟/天

目标:

  • 自动分类(重要/普通/垃圾)
  • 常见问题自动回复(用我的语气)
  • 待办自动提取
  • 敏感邮件转人工
  • 耗时:控制在 10 分钟内

二、工作流设计

2.1 流程图

┌─────────────────────────────────────────────────┐
│  每天早上 7 点自动触发                           │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│  第 1 步:读取昨晚 8 点至今的 Gmail 新邮件       │
│  - 使用 Gmail API                               │
│  - 过滤已读邮件                                 │
│  - 获取标题、发件人、正文、附件                 │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│  第 2 步:AI 分类(4 类)                        │
│  - 重要:客户/老板/合作伙伴                     │
│  - 普通:订阅/通知/推广                         │
│  - 垃圾:广告/推销/可疑链接                     │
│  - 敏感:合同/付款/法律/密码                    │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│  第 3 步:自动回复(常见问题)                   │
│  - "什么时候有空?" → 发送日历链接              │
│  - "这个需求能做吗?" → 发送报价单              │
│  - "有文档吗?" → 发送文档链接                  │
│  - 敏感邮件 → 跳过,标记待人工处理              │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│  第 4 步:提取待办事项                           │
│  - 识别邮件中的任务("请帮我...""需要...")     │
│  - 写入 Excel(任务、截止日、优先级)           │
│  - 关联原邮件链接                               │
└─────────────────┬───────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│  第 5 步:推送摘要                               │
│  - 新邮件总数                                   │
│  - 自动回复 X 封                                │
│  - 待人工处理 X 封(敏感邮件)                  │
│  - 新增待办 X 项                                │
│  - 发送到 Telegram/钉钉                         │
└─────────────────────────────────────────────────┘

2.2 涉及技能

技能 用途 调用次数
Gmail API 读取邮件、标记已读、发送回复 1 次
内置 AI 分类、回复撰写、待办提取 1 次
Excel 技能 写入待办表格 1 次
Telegram Bot 推送摘要 1 次

2.3 工作流配置

// ~/.openclaw/cron/jobs.json
{
  "id": "gmail-auto-process",
  "name": "Gmail 邮件自动处理",
  "schedule": {
    "kind": "cron",
    "expr": "0 7 * * *",
    "tz": "Asia/Shanghai"
  },
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "message": "【工作流】执行邮件自动处理:读取→分类→回复→提取待办→推送"
  },
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "telegram:chat:xxx"
  }
}

三、关键代码

3.1 Gmail API 配置

# ~/.openclaw/workspace/config/gmail.json
{
  "credentials""path/to/credentials.json",
  "token""path/to/token.json",
  "scopes": [
    "https://www.googleapis.com/auth/gmail.readonly",
    "https://www.googleapis.com/auth/gmail.send",
    "https://www.googleapis.com/auth/gmail.modify"
  ]
}

Gmail API 授权步骤:

  1. 去 Google Cloud Console 创建项目
  2. 启用 Gmail API
  3. 下载 credentials.json
  4. 首次运行自动跳转授权
  5. 保存 token.json

3.2 邮件分类规则

def classify_email(email):
    sender = email.get('from''')
    subject = email.get('subject''')
    body = email.get('body''')
    
    # 敏感邮件关键词
    sensitive_keywords = ['合同''付款''发票''密码''法律''诉讼']
    
    # 重要发件人
    important_senders = ['@client.com''@boss.com''@partner.com']
    
    # 判断敏感
    for keyword in sensitive_keywords:
        if keyword in subject or keyword in body:
            return 'sensitive'
    
    # 判断重要
    for sender_domain in important_senders:
        if sender_domain in sender:
            return 'important'
    
    # 判断垃圾
    spam_keywords = ['优惠''促销''免费''中奖''点击领取']
    for keyword in spam_keywords:
        if keyword in subject:
            return 'spam'
    
    return 'normal'

3.3 自动回复模板

# ~/.openclaw/workspace/config/reply_templates.json
{
  "meeting_request": {
    "trigger": ["什么时候有空""约个时间""开会""会议"],
    "reply""""您好,

感谢来信。这是我的日历链接,您可以选择一个方便的时间:
https://calendly.com/yourname

期待与您交流。

祝好,
[你的名字]"""

  },
  "proposal_request": {
    "trigger": ["需求""报价""多少钱""费用"],
    "reply""""您好,

感谢您的咨询。附件是我们的标准报价单,请查收。

如需定制方案,请提供详细需求文档,我们会在 24 小时内回复。

祝好,
[你的名字]"""

  },
  "document_request": {
    "trigger": ["文档""资料""说明""手册"],
    "reply""""您好,

相关文档请访问:https://docs.yourcompany.com

如有具体问题,欢迎继续咨询。

祝好,
[你的名字]"""

  }
}

3.4 待办提取

def extract_todos(email_body):
    # AI 提取任务
    prompt = f"""
    从以下邮件内容中提取待办事项:
    
    {email_body}
    
    输出格式(JSON):
    {{
      "todos": [
        {{"task": "任务描述", "due_date": "截止日", "priority": "high/medium/low"}}
      ]
    }}
    """

    
    # 调用 AI
    response = call_ai(prompt)
    return response['todos']

四、输出示例

【邮件处理摘要】

📧 新邮件总数:27 封
✅ 自动回复:12 封
⚠️  待人工处理:3 封(敏感邮件)
📋 新增待办:8 项
🗑️ 垃圾邮件:6 封(已归档)

【待人工处理】
1. [合同] XX 公司 - 服务合同审核
2. [付款] XX 客户 - 尾款确认
3. [敏感] 未知发件人 - 可疑链接

【新增待办 TOP 3】
1. 高优先级 - 周三前回复客户方案
2. 中优先级 - 准备周五会议资料
3. 低优先级 - 更新文档

处理时间:7 分钟

五、踩的坑

坑 1:自动回复太机械

第一次自动回复,用的模板太正式,客户回:"你是机器人吗?"

解决:

  • 加入口语化表达("感谢来信"→"收到你的邮件啦")
  • 根据发件人调整语气(客户正式,同事随意)
  • 加入个人签名档

坑 2:敏感邮件误判

有封正常邮件包含"合同"二字,被误判为敏感,耽误了进度。

解决:

  • 增加上下文判断(不仅看关键词,还看发件人、主题)
  • 敏感邮件只标记,不自动归档
  • 每天人工复核敏感邮件列表

坑 3:Gmail API 限流

第一次运行时,请求太多被限流了。

解决:

  • 增加延迟(每封邮件间隔 1 秒)
  • 批量操作(一次性标记已读)
  • 错误重试(指数退避)

六、成果

稳定运行 3 个月后的数据:

指标 之前 现在 提升
处理时间 35 分钟 8 分钟 -77%
自动回复率 0% 60% -
待办遗漏 每周 2-3 项 0 项 -
敏感邮件误判 - <1% -
垃圾邮件 手动删除 自动归档 -

额外收获:

  • 休假也安心(邮件自动处理)
  • 客户响应速度提升(自动回复秒回)
  • 待办事项零遗漏(自动提取)

七、下篇预告

第 3 篇:会议资料汇总

上篇工作流示例的进阶版:"会议资料汇总(它 5 点整理的)"

  • 自动读取日历,识别即将开始的会议
  • 从邮件、文档、聊天中提取相关资料
  • 会前 30 分钟自动发送参会人
  • 会后自动生成纪要

从 30 分钟 → 5 分钟(审核即可)


你在邮件处理上踩过什么坑?欢迎留言交流。

关注我,不错过后续 5 篇实战连载。


⚠️ 免责声明

重要提醒: 本文介绍的邮件自动处理工作流涉及自动删除/归档邮件操作。

潜在风险:

  • 配置错误可能导致误删重要邮件
  • 分类规则不完善可能遗漏关键邮件
  • 自动回复可能发送错误信息

建议措施:

  1. 首次运行前:完整备份 Gmail 数据(Google Takeout)
  2. 测试阶段:先用小号测试,确认规则无误
  3. 生产环境:先运行 1-2 周"只读模式"(不删除、不回复,仅分类)
  4. 定期复核:每周检查敏感邮件列表,避免误判

本人不对任何数据丢失承担责任。 使用本方案前,请确保你理解并接受相关风险。

引用链接

[1]OpenClaw 实战连载①:AI 新闻推送,上篇说"1+1>2",工作流在这: https://mp.weixin.qq.com/s/lBGAaNHcWqTnHRCsTb5YxA