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

如何为GMail API手动创建合法的'Message'类型JSON对象

Gmail API 邮件发送构造相关问题解答

1. Message 对象最小必填字段集合

Gmail API messages.send 接口支持两种构造请求的方式,对应不同的必填字段:

直接构造嵌套JSON结构(非raw方案)

你要提交的Message对象最少需要包含以下字段:

  • payload.headers 数组:必须包含3个头部对象:From(发件人邮箱)、To(收件人邮箱)、Subject(邮件主题)
  • payload.mimeType:纯文本邮件填text/plain,HTML邮件填text/html
  • payload.body.data:邮件正文的URL安全Base64编码内容
    如果需要发送附件,需要将payload.mimeType改为multipart/mixed,新增payload.parts数组分别存储正文、附件的分块内容,每个分块需要单独指定MIME类型、文件名(附件用)、编码后的内容,嵌套结构复杂度会大幅提升。

单raw字段方案

整个Message对象只需要包含raw一个字段,值为符合RFC 2822标准的邮件全文的URL安全Base64编码结果,是官方推荐的无依赖跨平台方案,不管有无附件都适用。

2. Message ID 规则说明

  • Message对象顶层的id字段是谷歌侧生成的全局唯一主键,无需也不能自定义,你提交请求时不需要携带该字段,发送成功后接口返回的结果中会自动带回该值,你自行填入的id会被谷歌直接忽略。
  • 注意区分和邮件头部的Message-ID(RFC标准邮件标识,不是Message对象的顶层字段):这个字段你可以选择自行生成(格式为<随机字符串@发件人域名>),也可以留空由谷歌自动生成,不属于必填项。

3. raw字段方案相关说明

RFC 2822 最小必填模板

无附件的纯文本邮件最小模板如下:

From: <发件人邮箱>
To: <收件人邮箱>
Subject: <邮件主题>
Content-Type: text/plain; charset=utf-8

<邮件正文内容>

如果是HTML邮件,只需要把Content-Type改为text/html; charset=utf-8即可。

方案对比

你提到直接构造JSON方案可读性、可维护性更高,这个认知在仅发送纯文本/HTML无附件邮件时成立,但如果后续需要支持附件,raw方案的维护成本会更低:你只需要按照通用的RFC 2822标准拼接多部分内容即可,不需要记忆Gmail特有的嵌套JSON结构规则,适配场景更统一。

FileMaker 实现注意事项

你可以直接用FileMaker内置的Base64Encode函数生成编码后,再做简单的字符替换即可得到URL安全的Base64编码:

  • 把编码结果中的+替换为-
  • 把/替换为_
  • 删除末尾所有的=填充字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 22:54:02