开篇
上篇文章《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 授权步骤:
去 Google Cloud Console 创建项目 启用 Gmail API 下载 credentials.json 首次运行自动跳转授权 保存 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 篇实战连载。
⚠️ 免责声明
重要提醒: 本文介绍的邮件自动处理工作流涉及自动删除/归档邮件操作。
潜在风险:
配置错误可能导致误删重要邮件 分类规则不完善可能遗漏关键邮件 自动回复可能发送错误信息
建议措施:
首次运行前:完整备份 Gmail 数据(Google Takeout) 测试阶段:先用小号测试,确认规则无误 生产环境:先运行 1-2 周"只读模式"(不删除、不回复,仅分类) 定期复核:每周检查敏感邮件列表,避免误判
本人不对任何数据丢失承担责任。 使用本方案前,请确保你理解并接受相关风险。
引用链接
[1]OpenClaw 实战连载①:AI 新闻推送,上篇说"1+1>2",工作流在这: https://mp.weixin.qq.com/s/lBGAaNHcWqTnHRCsTb5YxA
夜雨聆风