Sun Java System Messaging Server 6 2005Q4 管理指南

字符集标记

MIME 规范提供了一种机制,用以标记纯文本邮件中使用的字符集。特别是,可以将 charset= 参数指定为 Content-type: 标题行的一部分。MIME 中定义了各种字符集名称,包括 US-ASCII(默认)、ISO-8859-1、ISO-8859-2 以及随后定义的许多其他字符集。

某些现有系统和用户代理不提供生成上述字符集标记的机制;因此某些纯文本邮件可能未被正确标记。charset7charset8charsetesc 通道关键字提供了针对每个通道的机制,用以指定字符集名称,该名称将被插入到缺少字符集标记的邮件标题中。每个关键字都需要一个参数来指定字符集名称。系统不检查名称的有效性。但是请注意,只能对 MTA 表格目录的字符集定义文件 charsets.txt 中指定的字符集进行字符集转换。如果可能,请使用该文件中定义的名称。

如果邮件仅包含七位字符,则使用 charset7 字符集名称;如果在邮件中发现八位数据,则使用 charset8 字符集名称;如果邮件仅包含七位数据并同时包含转义符,则使用 charsetesc。如果未指定正确的关键字,字符集名称将不被插入到 Content-type: 标题行。

请注意,charset8 关键字还控制邮件标题中 8 位字符的 MIME 编码(标题中 8 位数据是绝对非法的)。如果未指定 charset8 值,MTA 通常对邮件标题中遇到的所有(非法)8 位数据进行 MIME 编码,将其标记为未知字符集。

这些字符集规范不会覆盖现有的标记,也就是说,如果邮件已经具有字符集标记或者不属于文本类型的邮件,则字符集规范没有任何影响。通常应当对 MTA 本地通道进行如下标记:


l ... charset7 US-ASCII charset8 ISO-8859-1 ...
hostname

如果邮件中没有 Content-type 标题,将添加该标题。如果缺少 MIME-version: 标题行,此关键字还将添加该标题行。

如果通道接收的未标记邮件使用了日语或韩语字符集并包含转义符,charsetesc 关键字将尤其有用。