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

使用Gmail API同时发送文本与HTML邮件时HTML转为附件的问题

问题根源与解决方法

这个问题我之前帮朋友排查过,核心问题出在你使用的MIME类型上!

你现在用的multipart/mixed是用来组合不同用途的内容(比如邮件正文加附件),但当你想同时提供纯文本和HTML两种格式的邮件正文时,应该使用multipart/alternative类型——这个类型的作用是告诉邮件客户端:「这是同一内容的不同呈现版本,你可以根据用户偏好显示合适的那一个」。当用multipart/mixed时,客户端会把每个子部分都当作独立的内容,所以你的HTML部分就被识别成附件了。

修改后的MIME代码

MIME-Version: 1.0
From: sender@gmail.com
To: receiver@gmail.com
Subject: test
Content-type: multipart/alternative; boundary="012boundary"

--012boundary
Content-type: text/plain; charset="UTF-8"

Hello plain text!

--012boundary
Content-type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<b>Hello html</b>

--012boundary--

关键修改点

  • 将Content-type: multipart/mixed替换为Content-type: multipart/alternative
  • 确保每个子部分(纯文本和HTML)的头部与内容之间有一个空行(这是MIME规范的强制要求,之前的代码里可能缺失了这个空行,也会导致解析异常)

这样修改后,邮件客户端就会正确识别纯文本和HTML版本的正文,不会把HTML当成附件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:52:06