微信扫码
添加专属顾问
我要投稿
让你的龙虾助手高效处理邮件,从配置到实战一网打尽!核心内容: 1. OpenClaw邮件处理的两种配置方式:主动轮询与实时推送 2. Docker部署的两种方案对比与详细操作指南 3. Gmail专用密码生成与imap-smtp-email技能安装全流程
本文为 拆解 OpenClaw 10 | 养一只会帮你谈价砍单的龙虾 的实战补充。主文讲了养龙虾的五步法,第三步「教技能」里提到了邮件处理。这篇把收邮件、析邮件、拣收件箱的完整配置补全 —— 从 Skill 安装、.env 到 HEARTBEAT、AgentS。
两种方式:主动取(心跳轮询)和被动推(新邮件实时推送)。主动取配置简单,被动推需要 Tailscale + gcloud。
Docker 部署:支持。推荐用 imap-smtp-email + Gmail App Password(见下方「Docker 专用方案」),无需 gog、无需 OAuth,配环境变量即可。若坚持用 gog,需在宿主机完成 OAuth 后挂载 keyring 目录进容器。
本地 Docker(如 docker-compose.yml 挂载 OPENCLAW_CONFIG_DIR、OPENCLAW_WORKSPACE_DIR):Skill 装在宿主机 $OPENCLAW_WORKSPACE_DIR 下,.env 写在 Skill 目录,容器通过 volume 自动读到。
OpenClaw 跑在 Docker 里时,用 imap-smtp-email Skill 最省事:不走 OAuth,用 Gmail App Password,环境变量传进去就行。
登录 [Google 账号]https://myaccount.google.com/
开启两步验证(若未开启):[安全性与登录]https://myaccount.google.com/security → 左侧「安全性与登录」→ 主区域「您的 Google 账号登录选项」下的「两步验证」
进入 [App Passwords]https://myaccount.google.com/apppasswords,选「邮件」和「其他设备」,生成 16 位密码
在宿主机执行(需指定工作空间路径,与 docker-compose 的 OPENCLAW_WORKSPACE_DIR 一致):
# 若 OPENCLAW_WORKSPACE_DIR=~/.openclaw/workspace
cd ~/.openclaw/workspace
npx playbooks add skill openclaw/skills --skill imap-smtp-email
# 或指定目标目录(按你的 agent 结构)
npx playbooks add skill openclaw/skills --skill imap-smtp-email --path ~/.openclaw/workspace
在 Skill 目录创建 .env。playbooks 安装后路径一般为:
~/.openclaw/workspace/.agents/skills/imap-smtp-email/.env用 find 快速定位:find ~/.openclaw/workspace -name "imap-smtp-email" -type d
IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_USER=xxxx@gmail.com
IMAP_PASS=你的16位AppPassword
IMAP_TLS=true
IMAP_MAILBOX=INBOX
或在 docker-compose 里通过 environment 传入(注意别把密码写进版本库)。
若 Skill 的 .env 在挂载的 workspace 里,Agent 调用时能读到。若用 docker-compose 的 environment,需确认 OpenClaw 会把它们传给 Skill 子进程(依具体部署方式而定)。
在 ~/.openclaw/workspace/ 下编辑两个文件:
HEARTBEAT.md(心跳检查清单,Agent 按间隔执行):
# 心跳检查清单
- 检查来自重要联系人的紧急邮件
- 检查 2 小时内即将到来的日历事件
- 回顾最近每日记忆并更新 MEMORY.md
AGENTS.md(任务处理规则,告诉 Agent 怎么处理邮件):
## 任务处理规则
- 收到邮件:先分类(紧急/普通/可忽略),再按优先级处理
- 紧急的:摘要推给我,并提示需要尽快回复
- 普通的:起草回复草稿,等我确认后再发
- 可忽略的:标记已读,不打扰我
- 涉及删除、发送、支付:必须先给我看草稿,等我明确说「发」才能执行
TOOLS.md(可选,方便 Agent 知道用哪个邮箱):
- 邮箱: xxxx@gmail.com在 OpenClaw 项目目录执行(确保 .env 里 OPENCLAW_CONFIG_DIR、OPENCLAW_WORKSPACE_DIR 已配置):
cd /path/to/openclaw # 如 digital-employee-platform/openclaw
docker compose restart openclaw-gateway
或 docker restart openclaw-gateway-1(容器名以实际为准)。
OpenClaw 官方镜像通常不含 gog。可选:
gog auth add wuhoujin68@gmail.com --manual,完成授权后把 ~/.config/gogcli 挂载进容器(映射到容器内 node 用户的对应路径),并设置环境变量 GOG_KEYRING_PASSWORD。容器内需自行安装 gog(自定义镜像或启动时安装)。Agent 按心跳间隔(默认 30 分钟)主动查收件箱。
# macOS
brew install steipete/tap/gogcli
# 或
brew install gogcli
https://www.googleapis.com/auth/gmail.readonly(只读)或 https://www.googleapis.com/auth/gmail.modify(读+草稿)client_secret_xxx.json)# 注册 OAuth 客户端
gog auth credentials /path/to/client_secret_xxx.json
# 授权账号(会打开浏览器)
gog auth add wuhoujin68@gmail.com --services gmail
# 无头环境用 --manual
# gog auth add wuhoujin68@gmail.com --services gmail --manual --force-consent
gog gmail search 'is:unread' --max 5 --account wuhoujin68@gmail.com
能列出未读邮件即成功。
npx playbooks add skill openclaw/skills --skill gmail-oauth
# 或
npx playbooks add skill openclaw/skills --skill gmail
TOOLS.md 里加一行(可选,方便 Agent 知道用哪个账号):
- 邮箱: wuhoujin68@gmail.com
HEARTBEAT.md 里加收件箱检查:
# 心跳检查清单
- 扫描 wuhoujin68@gmail.com 收件箱,有紧急邮件摘要推给我
AGENTS.md 里说明任务规则(可选):
## 任务处理规则
- 收到邮件:先分类(紧急/普通/可忽略),再按优先级处理。紧急的摘要推给我,普通的起草回复等我确认
Agent 会按 HEARTBEAT 间隔调用 gog gmail search 查未读,并推摘要给你。
新邮件到达时,Gmail 通过 Pub/Sub 推给 OpenClaw,实时性更好。需要 Tailscale、gcloud、Google Cloud 项目。
openclaw webhooks gmail setup --account wuhoujin68@gmail.com
该命令会:
hooks.gmailgcloud auth login
gcloud config set project <你的项目ID>
gcloud services enable gmail.googleapis.com pubsub.googleapis.com
gcloud pubsub topics create gog-gmail-watch
gcloud pubsub topics add-iam-policy-binding gog-gmail-watch \
--member=serviceAccount:gmail-api-push@system.gserviceaccount.com \
--role=roles/pubsub.publisher
gog gmail watch start \
--account wuhoujin68@gmail.com \
--label INBOX \
--topic projects/<项目ID>/topics/gog-gmail-watch
openclaw webhooks gmail run
或依赖 Gateway 自动启动(hooks.enabled=true 且 hooks.gmail.account 已配置时)。
在 openclaw.json 的 hooks 里加 mapping,让新邮件推到你用的渠道(如微信、钉钉):
{
hooks: {
enabled: true,
token: "OPENCLAW_HOOK_TOKEN",
presets: ["gmail"],
mappings: [
{
match: { path: "gmail" },
action: "agent",
deliver: true,
channel: "last",
messageTemplate: "新邮件 from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}"
}
]
}
}
gmail.readonlygmail.modify,但 AGENTS.md 里写清楚「起草必须等我确认才能发」
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-03-10
OpenClaw 永久免费的提取任何网页的终极方案
2026-03-10
刚刚,OpenClaw史上最猛更新!AI记忆可自由插拔,开发者等了半年
2026-03-10
你的API密钥可能已泄露!OpenClaw的致命问题
2026-03-10
OpenClaw: 用AI OS重塑你的公司
2026-03-10
【养虾日报】OpenClaw 2026.3.8 重磅发布:五大核心功能革新,重新定义智能协作体验
2026-03-10
创业者正在围绕OpenClaw生态做什么产品?
2026-03-09
周报202604: OpenClaw爆火之后,我第一次对AI产生了真正的不安
2026-03-09
OpenClaw 不踩坑恶意 Skills,企业需要自己的 Skills Registry:Nacos 3.2 发布
2026-02-06
2026-02-17
2026-02-03
2026-02-16
2026-03-05
2026-02-10
2026-02-06
2026-03-03
2026-02-05
2026-01-30