转换通道大量使用 MIME(通用 Internet 邮件扩展服务)标题行。您需要了解邮件结构和 MIME 标题字段。有关 MIME 的完整信息,请参见 RFC 1806、2045 至 2049 和 2183。为方便起见,本文对 MIME 做了简要概述。
简单邮件由标题和正文组成。标题位于邮件的顶部并包含特定的控制信息(例如日期、主题、发件人和收件人)。正文是标题后面第一个空行之后的所有内容。MIME 指定了构建更复杂的邮件的方法,邮件可以包含多个正文部分,甚至正文部分中还可以嵌套正文部分。这样的邮件称作多部分邮件,如前文中所述,转换通道对邮件按正文部分进行处理。
MIME 规范为正文部分定义了一系列标题行。其中包括 MIME-Version、Content-type、Content-Transfer-Encoding、Content-ID 和 Content-disposition。转换通道通常使用 Content-type 和 Content-disposition 标题。以下显示了某些 MIME 标题行的示例:
Content-type: APPLICATION/wordperfect5.1;name=Poem.wpc Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=Poem.wpc Content-description: "Project documentation Draft1 wordperfect format" |
MIME 标题行不同于通用的非 MIME 标题行(例如 To:、Subject: 和 From:)。就转换通道而言,MIME 标题行基本上以字符串 Content- 开头。
MIME Content-Type 标题说明正文部分的内容。以下显示了 Content-Type 标题的格式(带有示例):
Content-type: type/ subtype; parameter1=value; parameter2=value...
type 说明正文部分内容的类型。类型包括 Text、Multipart、Message、Application、Image、 Audio、Video 等。
subtype 进一步说明内容类型。每个 Content-type 都有自己的一组子类型。例如:text/plain、application/octet-stream 和 image/jpeg。MIME 邮件的内容子类型是由 IANA(Internet 编号授权机构)指定和列出的。http://www.iana.org/assignments/media-types 中有一份列表。
parameter 特定于各 Content-type/subtype 对。例如,以下显示了 charset 和 name 参数:
Content-type: text/plain; charset=us-ascii Content-type: application/msword; name=temp.doc |
charset 参数为文本邮件指定字符集。name 参数提供将数据写入文件时建议使用的文件名。
Content-Type 值、subtypes 和参数名称都不区分大小写。
MIME Content-disposition 标题提供正文部分的显示信息。通常将其添加到附件中,指定是显示附件的正文部分 (inline) 还是显示为要复制的文件名 (attachment)。Content-disposition 标题具有以下格式:
Content-disposition: disposition_type; parameter1=value;parameter2=value...
disposition_type 通常为 inline(显示正文部分)或 attachment(显示为要保存的文件)。Attachment 通常具有参数 filename,该参数有一个值用于指定被保存文件的建议名称。
有关 Content-disposition 标题的详细信息,请参见 RFC2183。