当前位置: 首页 > 知识库问答 >
问题:

MIME类型以满足超文本标记语言、电子邮件、图像和纯文本?

梁丘俊材
2023-03-14

Mail multipart/alternative vs multipart/mixed的答案表明,附件应该是多部分/alternative消息的对等方,如:

  • 多部分/混合

我想发送带有html部分的电子邮件,其中包含一些内联图像和纯文本选项。各部分的首选MIME布局是什么?示例代码和其他问题中出现了几个选项,但在实践中哪个选项效果最好?我的倾向是:

  • 多部分/备选方案

这样,图像显然是为了渲染html部分。一个完整的例子是:

From: Rich Example <rich-example@example.org>
To: A Recipient <recipient@example.org>
Subject: An example of email with images and a plain alternative
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="outer-boundary"

This is a MIME-encoded message. If you are seeing this, your mail
reader is old.
--outer-boundary
Content-Type: text/plain; charset=us-ascii

This message might make you :) or it might make you :(

--outer-boundary
MIME-Version: 1.0
Content-Type: multipart/related;
  type="text/html"; start="<body@here>"; boundary="inner-boundary"

--inner-boundary
Content-Type: text/html; charset=us-ascii
Content-Disposition: inline
Content-ID: <body@here>

<html>
 <body>
  This message might make you
  <img src="cid:smile@here" alt="smile">
  or it might make you
  <img src="cid:frown@here" alt="frown">
 </body>
</html>

--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <smile@here>

R0lGODlhEAAQAKEBAAAAAP//AP//AP//ACH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci6JrasrqkypxJr8S0oNpgqkGLtcY6hoFADs=

--inner-boundary
Content-Type: image/gif
Content-Disposition: inline
Content-Transfer-Encoding: base64
Content-ID: <frown@here>

R0lGODlhEAAQAKEBAAAAAAD//wD//wD//yH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2
IpWglOvTahDgGdI0ZlGW5meKlci75drDzm5uLZyZ1I3Mv8ZB5Krtgg1RoFADs=

--inner-boundary--

--outer-boundary--

共有1个答案

谢志用
2023-03-14

你是对的。内联图像应存储在一个多部分/相关的mime实体(RFC 2387)中,并且可以使用多部分/备选方案(RFC 2046)提供多种内容类型选项
要添加附件,可以将整个结构放入多部分/混合结构中,然后添加附件。

  • 多部分/混合

您也可以在文本/普通消息中使用内联图像,但并非所有MUA都支持这一点。(使用无或处置:内联)

  • 多部分/混合

我不知道一个干净的方法来结合这与多部分/替代超文本标记语言-email。

 类似资料:
  • 我有一位客户/朋友正在准备通过agencyaccess发送电子邮件。他们需要一个包含所有内容的html文档,并在一个html文档中包含电子邮件的纯文本版本。我想我有一个基本的理解,但有点困惑。我通常使用Mailchimp来处理我的电子邮件营销。 因此,我们将使用常规的html文档 但是,我们是否在此下方的某个地方为纯文本版本声明了另一种mime类型,然后电子邮件客户端选择要显示的类型?这两者是否都

  • 我试图使用谷歌ap脚本发送超文本标记语言的电子邮件。我有一个谷歌文档上的超文本标记语言,我试图使用下面的代码发送。但是当我发送它时,我收到的是未格式化的文本,显示了所有超文本标记语言标签。有人能告诉我怎么做吗?我不想在脚本中包含超文本标记语言,因为最终会有很多。 var html=UrlFetchApp。取('https://docs.google.com/document/d/documentI

  • 我有一个模板用于我尝试设置的密码重置电子邮件,而不是默认的电子邮件。代码如下: 并且,在我的浏览器(chrome)中呈现,它看起来像这样: 我试图使用django中的模板,通过创建一封“密码重置”电子邮件。html,并将其传递给django。contrib。认证。密码重置视图。然而,我收到的电子邮件(显示在gmail中)看起来是这样的: 我做错了什么?我尝试了以下方法来解决此问题: 删除所有并将所

  • 我有一封预先设计好的HTML电子邮件,我用Komodo edit对它进行了切片和编码。所有内容都在一个表中,和

  • 我正在尝试使用BeautifulSoup转换HTML文本块。以下是一个示例: 我试着做了这样的事情: ...但是这样我的span元素总是在新行上。这当然是一个简单的例子。有没有办法在超文本标记语言页面中获取文本,就像它在浏览器中呈现的方式一样(不需要css规则,只是div、spans、li等元素呈现的常规方式)在Python中?

  • 我正在用HTML发送一封电子邮件时事通讯。在HTML中,我有如下内容