1184 字
6 分钟
Claude 写好邮件还让我自己去 Gmail 点发送,这事儿别扭

让 Claude 给教授发邮件确认期末考试地点。它写得挺好——找对了人(一开始把 DePasquale 拼成 Depasque,被我骂回去自己搜 Gmail 才查到正确名字和邮箱),措辞也得体。

然后呢?我得切到 Gmail,找到 Drafts 文件夹,找到那条草稿,review 一遍,点 send。

合理吗?

Anthropic 的官方答复#

官方支持文档写得很直白:Claude 的 Gmail connector 只能读邮件、建草稿,“send 功能未启用,所有邮件必须通过你自己的 Gmail 账号手动发送”。

这是个 product 决定。GitHub 上已经有公开的 feature request #28575,要求加 gmail_send_draft 工具,连附件支持都没有。开了好几个月,还在 backlog。

ChatGPT 这边怎么做#

我一开始也以为两边都是 draft-only,引了 Context Link 2026 年 3 月的对比文 里的 “cannot send emails on your behalf” 当依据。

写完发出去给用户看,立刻被打脸:“我就可以啊?”

然后是这张证据:

ChatGPT Gmail Apps 完整发送流程:确认弹窗 → 成功提示 → 收件箱

三张图的内容:底部是准备发邮件时弹出来的确认框,预览写得清清楚楚——发给谁、subject 是什么、共享的数据有哪些。底下两个按钮:Deny 和 Send Email。再下面一行小字 “Using tools comes with risks.” 按了 Send Email,左上 ChatGPT 确认 “All set!”,右上 Gmail 收件箱里就躺着那封 Test Email。

完整闭环,inline 完成。

OpenAI 自己的 Apps 文档 也写得清楚:

Some apps may be able to take actions (for example, create or update information in a connected service)… our policies require that apps request confirmation from you before proceeding with external actions.

OpenAI 的产品策略:apps 可以执行外部 actions,但执行前必须人工确认。Anthropic 这边只做了”人工确认”那半截——你必须自己去 Gmail 按 send;execute 那半截没 hook 进来。结果用户被强制做一次跨应用切换。

我之前那个”两家都 draft-only”的判断错得彻底——错就错在没看一手证据,引了个二手文章就下结论。这件事本身值得记一下。

这个流程的问题#

强制走 draft → 切到 Gmail 这一步的安全收益约等于零:

  1. 最后还是要肉眼审一遍内容才点 send
  2. 在 Claude 聊天框里看一遍,跟在 Gmail 里看一遍,审查质量没区别
  3. 中间多了状态管理负担——草稿还在不在?我刚才有没有手动改过?现在要发的版本是 Claude 写的还是我编辑过的?

全是摩擦,没换来安全。

现成的解法 Anthropic 自己早就用过#

要在 send 邮件前加一道用户确认,这种 UI pattern 在 Anthropic 自家产品里到处都是:

  • Claude Code 的 Plan Mode:Claude 写完计划弹出来给你 approve / reject,按了才执行
  • Claude Code 的 tool permission prompt:每次 bash / Edit 之前都要 y/n
  • Claude in Chrome 的 action confirmation:导航、点击、提交前都有弹窗

把同一个 pattern 搬到 claude.ai 的聊天界面:

Claude: 这是要发出的邮件 [完整预览]

[Approve & Send] [Edit] [Cancel]

体验完爆”自己去 Gmail Drafts 文件夹翻草稿”。Anthropic 已经在三个产品上写过这个交互层了。

推测真正的原因#

技术上做得到的事情没做,剩下的就是产品决定。我推测:

  1. 法律责任——发出去的邮件无法撤回。Claude 写错地址或内容,Anthropic 不想背锅。让用户在 Gmail 里手动按 send 等于责任完全转嫁给用户。
  2. Prompt injection——允许 read + send 完整闭环的话,恶意邮件嵌入指令能直接控制账号往外发垃圾。强制人工 send 是最简单的兜底。
  3. UI 工程优先级——claude.ai 的网页/手机端聊天界面历史上没有 inline 工具调用确认这一层。要重做交互层,加一个按钮做不到。

第 3 条是真问题。第 1、2 条用 inline approve/reject 都能解决——既然让用户审查了,责任就已经在用户身上;prompt injection 在确认环节会被人眼挡下来。OpenAI 已经把这套跑通了,截图就在前面。

写到这里#

刚才让 Claude 给 Sterling 教授和他的 TA 发邮件确认 final 考试地点。Claude 写完,我加了一句”CC 给 TA”,它建了第二份草稿——因为 Gmail MCP 工具只有 create_draft,没有 update_draft

所以现在我 Drafts 文件夹里躺着两份内容几乎一样的草稿,得自己删掉旧的、发新的。

同一类 feature request 也在求 gmail_read_draftgmail_update_draft,也是开着没动。

每次都让用户手动收拾这些状态——所谓的”安全”,不过是产品没做完。

Claude 写好邮件还让我自己去 Gmail 点发送,这事儿别扭
https://blog.lishuyu.top/posts/2026-05-04-claude-gmail-draft-only-rant/
作者
猫猫魔女
发布于
2026-05-04
许可协议
CC BY-NC-SA 4.0