You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Gmail API的message.send接口所需的cURL请求头有哪些?

问题核心原因

你遇到的400错误不是请求头缺失,是Content-Type配置与请求体格式不匹配导致的。
你当前设置的Content-Type: message/rfc822要求请求体直接为完整的RFC822格式邮件内容,不能包裹JSON外壳。你提交的JSON结构只有在Content-Type为application/json时才能被正确解析,Gmail无法从message/rfc822类型的请求体中解析JSON里的收件人信息,因此返回Recipient required错误。


调用Gmail发信接口必填请求头

  • Authorization: Bearer <accessToken>:必填,accessToken需要提前申请https://www.googleapis.com/auth/gmail.send发送权限
  • Content-Type:必填,根据你的请求体格式二选一:
    • 如果请求体是带raw字段的JSON,填application/json
    • 如果请求体是完整的RFC822原始邮件内容,填message/rfc822

两种场景的正确cURL示例

场景1:使用JSON包裹base64url编码的邮件内容(适合无大附件的普通邮件)

curl -X POST \
  "https://gmail.googleapis.com/gmail/v1/users/me/messages/send" \
  -H "Authorization: Bearer <替换为你的实际accessToken>" \
  -H "Content-Type: application/json" \
  -d '{
  "raw": "<替换为你的完整base64url编码的RFC2822邮件内容>"
}'

注意:该场景下JSON仅需保留raw字段即可,你示例中的payload字段为冗余参数,不需要传入,raw字段已包含完整的收件人、发件人、主题、正文信息,Gmail会优先解析raw内容。

场景2:直接提交RFC822原始邮件(适合带大附件的邮件,需使用upload接口)

如果你的邮件大于5MB,使用upload接口,直接提交.eml格式的原始邮件文件:

curl -X POST \
  "https://gmail.googleapis.com/upload/gmail/v1/users/me/messages/send" \
  -H "Authorization: Bearer <替换为你的实际accessToken>" \
  -H "Content-Type: message/rfc822" \
  --data-binary @<替换为你的.eml邮件文件路径>

内容的提问来源于stack exchange,提问作者J7Ts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:36:03