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

如何通过Gmail API区分内嵌图片与图片附件?

如何通过Gmail API区分内嵌图片与普通图片附件?

答案是肯定的——你可以通过Gmail API响应里的Content-ID字段,再结合邮件正文的引用关系,区分内嵌图片和普通附件,哪怕两者的Content-Disposition都标记为attachment。具体方法如下:

1. 检查MIME部分的Content-ID字段

内嵌图片的MIME块几乎都会携带Content-ID头字段,而普通图片附件一般没有这个字段(就算有,也不会被邮件正文引用)。

举个响应示例对比:

内嵌图片的MIME片段:

Content-Type: image/png; name="inline.png"
Content-Disposition: attachment; filename="inline.png"
Content-Transfer-Encoding: base64
Content-ID: <abc123@example.com>

普通图片附件的MIME片段:

Content-Type: image/jpeg; name="attachment.jpg"
Content-Disposition: attachment; filename="attachment.jpg"
Content-Transfer-Encoding: base64

2. 验证Content-ID与邮件正文的关联

内嵌图片会被邮件的HTML正文通过cid:协议引用,比如你会在HTML里看到类似 <img src="cid:abc123@example.com"> 的代码。

你需要做的是:

  • 解析邮件的HTML正文,提取所有带有cid:前缀的图片地址
  • 把提取到的cid值(比如abc123@example.com)和MIME部分的Content-ID值(去掉两端的尖括号)做匹配,匹配上的就是内嵌图片。

关于Content-ID有效性的补充说明

  • Content-ID的标准格式是<唯一标识符@域名>,Gmail API返回的一般会包含尖括号,匹配时记得去掉再对比
  • Content-ID是大小写敏感的,但实际邮件里正文引用和MIME头的内容通常会保持一致
  • 如果某个MIME块有Content-ID,但没被正文引用,那它不算内嵌图片,可能是邮件客户端未使用的备用资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:40:25