Content-Transfer-Encoding 是 HTML header 吗?

Is Content-Transfer-Encoding an HTML header?

我们正在以 HTML 格式发送带有邮件 body 的自动电子邮件,并且我们在 body.Once 中收到两次电子邮件内容 header

MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_00F5_01D2C509.C9598370"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdLE260N6ZrXujJMTE6odOelzNRIhw==
Content-Language: en-us

This is a multipart message in MIME format.

------=_NextPart_000_00F5_01D2C509.C9598370
Content-Type: text/plain;
    charset="us-ascii"
Content-Transfer-Encoding: 7bit

然后用这个 header

------=_NextPart_000_00F5_01D2C509.C9598370
Content-Type: text/html;
    charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

还尝试让 html 中的 Content-Transfer-Encoding header 具有这些值之一 "BASE64" / "QUOTED-PRINTABLE" / "8BIT" / "7BIT" / "BINARY" / "x-token"。 但是在收到的邮件中仍然有相同的 headers MIME。
所以首先,Content-Transfer-Encoding 是 HTML header 吗?如果是,将此 header 的值更改为正确的值是否可以解决此问题?

Is Content-Transfer-Encoding an HTML header?

不,它与 HTML 无关,或者准确地说“只是 HTML”。 “Content-Transfer-Encoding”是MIME 的特定内容 的header(也可能是HTML 内容)添加到 MIME 以传输此内容时,指示此内容的编码。我知道这听起来有点奇怪,content,content 和 content,但这个资源可能会帮助您更好地理解:Content-Transfer-Encoding Header FieldContent-Transfer-Encoding 旨在指定一种数据类型的“本机”表示与可以使用 7 位邮件传输协议轻松交换的表示之间的可逆映射。但是足够的理论,让我们做一些你有的真实世界的例子......

您使用 Outlook 以 HTML 格式撰写邮件。当消息离开 Exchange 环境(发送出去)时,它将被转换为 MIME 以通过 Internet 传输。此时你的 HTML 将被编码为适当的,到这个 HTML 的内容,类型和 Content-Transfer-Encoding header 将被添加到这个内容,所以这个的接收者消息能够通过解码内容将此内容转换回原始 HTML。我希望现在清楚了。

We are sending an automated email with mail's body in HTML format and we are receiving the email content twice in the body

根据 rfc2046 多用途 Internet 邮件扩展 (MIME),在将邮件转换为 MIME 时创建了相同 body(您的 HTML 内容)的替代子类型,并且添加了适当的 header 以指示“Content-Type: multipart/alternative;”。每个 body 部分都是相同信息的“替代”版本。这意味着您有“text/plain”内容,它代表您的 HTML 的剥离版本为裸文本。此内容是 HTML 的替代内容,并且根据内容有自己的 Content-Transfer-Encoding header。此内容可能供无法呈现 HTML.

的收件人使用