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

附件和 MIME 处理

本节说明了涉及附件和 MIME 处理的关键字。其中包含以下各节:

忽略 Encoding 标题行

关键字:ignoreencodinginterpretencoding

MTA 可以用 Yes CHARSET-CONVERSION 将各种非标准邮件格式转换为 MIME。尤其是,RFC 1154 格式使用非标准 Encoding: 标题行。但是某些网关在此标题行中发出不正确信息,导致有时需要忽略此标题行。ignoreencoding 关键字指示 MTA 忽略所有 Encoding: 标题行。


注 –

除非 MTA 已启用 CHARSET-CONVERSION,否则任何情况下都将忽略此标题。interpretencoding 关键字指示 MTA 注意所有 Encoding: 标题行(如果配置为执行此操作),此关键字是默认设置。


Message/Partial 邮件的自动片段整理

关键字:defragmentnodefragment

MIME 标准提供了 message/partial 内容类型,用于将邮件分成较小的部分。当邮件必须在有大小限制的网络中传输,或者在不可靠的网络中传输时,此功能会很有用。在后一种情况下,邮件分段可以提供某种形式的“检查点”,当邮件传输期间出现网络故障时可以减少随后的复制工作。每一部分中都将包含信息,以便邮件到达目的地后可以自动重新组合邮件。

defragment 通道关键字和片段整理通道提供了在 MTA 中重新组合邮件的方法。当通道被标记为 defragment 时,在通道排队的所有部分邮件将被置于片段整理通道队列中。所有部分都到达之后,将重新组合邮件并进行发送。nodefragment 禁用此特殊处理功能。关键字 nodefragment 是默认设置。

片段整理通道保留时间

在片段整理通道队列中将邮件仅保留有限时间。如果发送第一个未传送通知之前时间已过去一半,将发送邮件的各个部分,不进行重新组合。选择此时间值排除了为片段整理通道队列中的邮件发送未传送通知的可能性。

通道关键字 notices 将控制发送未传送通知之前所经过的时间,因此也控制着邮件在分块发送之前被保留的时间。将关键字 notices 的值设置为希望保留邮件以进行可能的片段整理的时间的两倍。例如,notices 的值为 4 可以使邮件片段保留两天:


defragment notices 4 
DEFRAGMENT-DAEMON

大型邮件的自动分段

关键字:maxblocksmaxlines

某些电子邮件系统或网络传输无法处理超过特定大小限制的邮件。MTA 以各个通道为基础提供了实施此类限制的功能。大于所设置的限制的邮件将被自动分割(分段)成多个较小的邮件。用于这种分段的内容类型为 message/partial,并添加唯一的 ID 参数,以便同一邮件的不同部分可以彼此关联,并在可能的情况下由接收邮件程序自动重新组合。

关键字 maxblocksmaxlines 用于实施大小限制,超过此限制时将激活自动分段功能。这两个关键字后面都必须跟一个整数值。关键字 maxblocks 指定邮件中允许的最大块数。MTA 块通常为 1024 字节,可以使用 MTA 选项文件中的 BLOCK_SIZE 选项对其进行更改。关键字 maxlines 指定邮件中允许的最大行数。如果必要,可以同时实施上述两个限制。

某种程度上,邮件标题也包含在邮件大小中。由于不能将邮件标题分割成多个邮件,但是标题本身有可能超过指定的大小限制,因此使用一种相当复杂的机制来解释邮件标题大小。该逻辑由 MTA 选项文件中的 MAX_HEADER_BLOCK_USEMAX_HEADER_LINE_USE 选项控制。

MAX_HEADER_BLOCK_USE 用于指定 0 和 1 之间的一个实数。默认值为 0.5。在邮件可以使用的总块数(由 maxblocks 关键字指定)中,邮件标题可以占用该比例的块数。如果邮件标题大于该值,MTA 将以 MAX_HEADER_BLOCK_USEmaxblocks 的乘积作为 * MAX_HEADER_BLOCK_USE 标题的大小(标题大小取实际标题大小和 maxblocks 中较小的值)。

例如,如果 maxblocks 为 10 且 MAX_HEADER_BLOCK_USE 为默认值 0.5,则所有大于 5 个块的邮件标题将按 5 个块的标题来处理,如果邮件大小等于或小于 5 个块,则不对其进行分段。如果值为 0,将不对标题做任何邮件大小限制方面的处理。

如果值为 1,则标题可以使用所有可用大小。每个分段将始终至少包含一个邮件行,无论这样做是否导致超过大小限制。MAX_HEADER_LINE_USEmaxlines 关键字结合使用的方式与上述相似。

实施邮件行长度限制

关键字:linelength

SMTP 规范允许文本行最多包含 1000 字节。但是,某些传输对行的长度可能会实施更为严格的限制。linelength 关键字提供了以各个通道为基础的机制,用于限制允许的最大邮件行长度。如果在给定通道排队的邮件的行长于为该通道指定的限制,则对邮件进行自动编码。

MTA 中可用的各种编码总是将行长度减少到少于 80 个字符。编码后可以应用适当的解码过滤器来恢复原来的邮件。


注 –

编码只能将行的长度减少到少于 80 个字符。将行的长度值指定为小于 80 可能不会实际生成长度符合该限制的行。


linelength 关键字使数据编码执行“软”自动换行以用于传输。通常在接收端对编码进行解码,以便恢复原来的“长”行。有关“硬”自动换行的信息,请参见表 13–7 中的 "Record, text"。