免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

拆解 OpenClaw 补充 | 让龙虾收邮件、分析邮件、分拣收件箱:完整配置手把手实操

发布日期:2026-03-10 08:24:11 浏览次数: 1527
作者:与AI同行之路

微信搜一搜,关注“与AI同行之路”

推荐语

让你的龙虾助手高效处理邮件,从配置到实战一网打尽!

核心内容:
1. OpenClaw邮件处理的两种配置方式:主动轮询与实时推送
2. Docker部署的两种方案对比与详细操作指南
3. Gmail专用密码生成与imap-smtp-email技能安装全流程

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

 

本文为 拆解 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_DIROPENCLAW_WORKSPACE_DIR):Skill 装在宿主机 $OPENCLAW_WORKSPACE_DIR 下,.env 写在 Skill 目录,容器通过 volume 自动读到。

Docker 专用方案(推荐)

OpenClaw 跑在 Docker 里时,用 imap-smtp-email Skill 最省事:不走 OAuth,用 Gmail App Password,环境变量传进去就行。

1. 生成 Gmail App Password

    1. 登录 [Google 账号]https://myaccount.google.com/

    2. 开启两步验证(若未开启):[安全性与登录]https://myaccount.google.com/security → 左侧「安全性与登录」→ 主区域「您的 Google 账号登录选项」下的「两步验证」

    3. 进入 [App Passwords]https://myaccount.google.com/apppasswords,选「邮件」和「其他设备」,生成 16 位密码

    2. 安装 imap-smtp-email Skill

    在宿主机执行(需指定工作空间路径,与 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

    3. 配置 Skill 环境变量

    在 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 传入(注意别把密码写进版本库)。

    4. 确保容器能访问 Skill 的 env

    若 Skill 的 .env 在挂载的 workspace 里,Agent 调用时能读到。若用 docker-compose 的 environment,需确认 OpenClaw 会把它们传给 Skill 子进程(依具体部署方式而定)。

    5. HEARTBEAT 和 AGENTS 配置

    在 ~/.openclaw/workspace/ 下编辑两个文件:

    HEARTBEAT.md(心跳检查清单,Agent 按间隔执行):

    # 心跳检查清单
    -
     检查来自重要联系人的紧急邮件
    -
     检查 2 小时内即将到来的日历事件
    -
     回顾最近每日记忆并更新 MEMORY.md

    AGENTS.md(任务处理规则,告诉 Agent 怎么处理邮件):

    ## 任务处理规则
    -
     收到邮件:先分类(紧急/普通/可忽略),再按优先级处理
    -
     紧急的:摘要推给我,并提示需要尽快回复
    -
     普通的:起草回复草稿,等我确认后再发
    -
     可忽略的:标记已读,不打扰我
    -
     涉及删除、发送、支付:必须先给我看草稿,等我明确说「发」才能执行

    TOOLS.md(可选,方便 Agent 知道用哪个邮箱):

    - 邮箱: xxxx@gmail.com

    6. 重启容器

    在 OpenClaw 项目目录执行(确保 .env 里 OPENCLAW_CONFIG_DIROPENCLAW_WORKSPACE_DIR 已配置):

    cd /path/to/openclaw   # 如 digital-employee-platform/openclaw
    docker compose restart openclaw-gateway

    或 docker restart openclaw-gateway-1(容器名以实际为准)。

    若坚持用 gog(Docker)

    OpenClaw 官方镜像通常不含 gog。可选:

    • • 宿主机 OAuth + 挂载:在宿主机执行 gog auth add wuhoujin68@gmail.com --manual,完成授权后把 ~/.config/gogcli 挂载进容器(映射到容器内 node 用户的对应路径),并设置环境变量 GOG_KEYRING_PASSWORD。容器内需自行安装 gog(自定义镜像或启动时安装)。
    • • imap-smtp-email 更简单:无 gog、无 OAuth,适合 Docker。

    方式一:主动取(本机 / 非 Docker 推荐)

    Agent 按心跳间隔(默认 30 分钟)主动查收件箱。

    1. 安装 gog

    # macOS
    brew install steipete/tap/gogcli

    # 或

    brew install gogcli

    2. 创建 Google Cloud OAuth 客户端

    1. 1. 打开 Google Cloud Console
    2. 2. 新建项目或选现有项目
    3. 3. 启用 Gmail API:APIs & Services → Library → 搜索 "Gmail API" → Enable
    4. 4. 配置 OAuth 同意屏幕:APIs & Services → OAuth consent screen
    • • 用户类型选 External
    • • 填应用名称、支持邮箱
    • • 添加范围:https://www.googleapis.com/auth/gmail.readonly(只读)或 https://www.googleapis.com/auth/gmail.modify(读+草稿)
    • • 测试用户里添加 wuhoujin68@gmail.com(若应用在 Testing 模式)
    • • 个人用建议点 PUBLISH APP,否则令牌 7 天过期
  1. 5. 创建凭据:APIs & Services → Credentials → Create Credentials → OAuth client ID
    • • 应用类型选 Desktop app
    • • 下载 JSON 文件(如 client_secret_xxx.json

    3. 用 gog 完成 OAuth 授权

    # 注册 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

    4. 验证

    gog gmail search 'is:unread' --max 5 --account wuhoujin68@gmail.com

    能列出未读邮件即成功。

    5. 安装 gmail-oauth 或 gmail Skill

    npx playbooks add skill openclaw/skills --skill gmail-oauth
    # 或

    npx playbooks add skill openclaw/skills --skill gmail

    6. 在 Agent 工作空间配置

    TOOLS.md 里加一行(可选,方便 Agent 知道用哪个账号):

    - 邮箱: wuhoujin68@gmail.com

    HEARTBEAT.md 里加收件箱检查:

    # 心跳检查清单
    -
     扫描 wuhoujin68@gmail.com 收件箱,有紧急邮件摘要推给我

    AGENTS.md 里说明任务规则(可选):

    ## 任务处理规则
    -
     收到邮件:先分类(紧急/普通/可忽略),再按优先级处理。紧急的摘要推给我,普通的起草回复等我确认

    7. 重启 OpenClaw 或等下次心跳

    Agent 会按 HEARTBEAT 间隔调用 gog gmail search 查未读,并推摘要给你。


    方式二:被动推(实时)

    新邮件到达时,Gmail 通过 Pub/Sub 推给 OpenClaw,实时性更好。需要 Tailscale、gcloud、Google Cloud 项目。

    前置条件

    • • Tailscale 已登录
    • • gcloud 已安装并登录
    • • gog 已完成方式一的 1–4 步

    一键配置(推荐)

    openclaw webhooks gmail setup --account wuhoujin68@gmail.com

    该命令会:

    • • 启用 Gmail hook 预设
    • • 配置 hooks.gmail
    • • 用 Tailscale Funnel 作为公网推送端点
    • • 在 macOS 上自动安装 gcloud、gogcli、tailscale(通过 brew)

    手动配置(若一键失败)

    1. 1. 选 GCP 项目(需与 gog OAuth 客户端同项目):
    gcloud auth login
    gcloud config set project <你的项目ID>
    1. 2. 启用 API
    gcloud services enable gmail.googleapis.com pubsub.googleapis.com
    gcloud pubsub topics create gog-gmail-watch
    1. 3. 授权 Gmail 推送
    gcloud pubsub topics add-iam-policy-binding gog-gmail-watch \
      --member=serviceAccount:gmail-api-push@system.gserviceaccount.com \
      --role=roles/pubsub.publisher
    1. 4. 启动 Gmail Watch
    gog gmail watch start \
      --account wuhoujin68@gmail.com \
      --label INBOX \
      --topic projects/<项目ID>/topics/gog-gmail-watch
    1. 5. 运行推送处理
    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}}"
          }
        ]
      }
    }

    权限建议

    • • 只收邮件:OAuth 范围用 gmail.readonly
    • • 收 + 起草回复:用 gmail.modify,但 AGENTS.md 里写清楚「起草必须等我确认才能发」
    • • 不建议给发送权限,除非你接受 Agent 自主发邮件(参见 Day 12 保险理赔翻车故事)

     

    53AI,企业落地大模型首选服务商

    产品:场景落地咨询+大模型应用平台+行业解决方案

    承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

    联系我们

    售前咨询
    186 6662 7370
    预约演示
    185 8882 0121

    微信扫码

    添加专属顾问

    回到顶部

    加载中...

    扫码咨询