1

我正在使用 ImapX lib 接收来自 Gmail 的电子邮件。

我得到了多种类型的 Content-Type 和 Content-Encoding-Trafering 的电子邮件正文。如何解码?

4

1 回答 1

1

MIME 标准记录在 RFC 2045 到 2048 中。您可能不想阅读所有这些标准,但在尝试处理 MIME 之前,您当然应该对 MIME 有基本的了解。 http://en.wikipedia.org/wiki/MIME是一个很好的起点。

Content-Transfer-Encoding可以有五个不同的值之一;其中, 7bit, 8bit, andbinary不需要任何解码(它们的不同之处在于您可以假设字符集和行长度;和之间的区别在于8bit保证binary8bit长度有限;尽管您肯定会在有时很狂野)。

因为你需要解码quoted-printablebase64但是任何相当现代的编程语言都已经为此提供了库函数。

Content-Type层次结构基本上是无限的。顶级类型(textimageaudioapplication等)和一组标准的子类型(text/plaintext/html等)数量有限,但正在注册更多类型,并且该标准不需要注册类型。无论如何,这些通常不需要解码;他们声明内容的类型,以便接收者知道如何处理它们。通用的包罗万象application/octet-stream基本上意味着“这里有一个数据块;希望人类接收者知道如何处理它”,对于许多类型,除了下载到本地磁盘之外,没有任何明智的默认操作。所有通用电子邮件客户端都将text/plain直接向用户显示,除非Content-Disposition否则需要,大多数现代客户端将显示text/html和其他几种内联类型。但是,您想要对内容做什么首先取决于您正在编写什么样的应用程序。

于 2011-09-22T07:03:06.770 回答