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

使用转换通道环境变量

对邮件主体部分进行操作时,在通道和站点提供的程序之间来回传递 MIME 标题行信息(或整个主体部分)通常是很有用的。例如,程序可能需要 Content-typeContent-disposition 标题行信息以及邮件主体部分。通常,站点提供的程序的主要输入部分是从文件读取的邮件主体部分。对主体部分进行处理后,程序需要将其写入一个文件,转换通道可以从该文件中进行读取。这种类型的信息传递是通过使用转换通道环境变量进行的。

可以使用 parameter-symbol-* 参数在 conversions 文件中创建环境变量,或通过使用一组预定义的 conversion 通道环境变量进行创建(请参见使用转换通道输出选项)。

以下 conversions 文件条目和传入邮件标题显示了如何使用环境变量将 MIME 信息传递给站点提供的程序。

conversions 文件条目:


in-channel=*; in-type=application; in-subtype=*;
  parameter-symbol-0=NAME; parameter-copy-0=*;
  dparameter-symbol-0=FILENAME; dparameter-copy-0=*;
  message-header-file=2; original-header-file=1;
  override-header-file=1; override-option-file=1;
  command="/bin/viro-scan500.sh ”INPUT_FILE’ ”OUTPUT_FILE’"
 

外来标题:


Content-type: APPLICATION/msword; name=Draft1.doc
Content-transfer-encoding: BASE64
Content-disposition: attachment; filename=Draft1.doc
Content-description: "Project documentation Draft1 msword format"

in-channel=*; in-type=application; in-subtype=* 指定将处理来自类型 application 的所有输入通道的邮件主体部分。

parameter-symbol-0=NAME 指定将第一个 Content-type 参数值(在本例中为 Draft1.doc)存储在一个称作 NAME 的环境变量中。

parameter-copy-0=* 指定将输入主体部分的所有 Content-type 参数复制到输出主体部分。

dparameter-symbol-0=FILENAME 指定将第一个 Content-disposition 参数值(在本例中为 Draft1.doc)存储在一个称作 FILENAME 的环境变量中。

dparameter-copy-0=* 指定将输入主体部分的所有 Content-disposition 参数复制到输出主体部分。

message-header-file=2 指定将邮件的原始标题作为一个整体(最外层邮件标题)写入到由环境变量 MESSAGE_HEADERS 指定的文件中。

original-header-file=1 指定将封闭的 MESSAGE/RFC822 部分的原始标题写入到由环境变量 ORIGINAL_HEADERS 指定的文件中。

override-header-file=1 指定从环境变量 OUTPUT_HEADERS 指定的文件中读取 MIME 标题,这将覆盖封闭 MIME 部分中的原始 MIME 标题行。$OUTPUT_HEADERS 是转换运行时创建的应急临时文件。站点提供的程序将使用此文件存储转换过程中更改的 MIME 标题行。然后,当转换通道重新组合主体部分时,将从此文件中读取 MIME 标题行。请注意,只能对 MIME 标题行进行修改。其他通用的非 MIME 标题行不能通过转换通道进行更改。

override-option-file=1 指定 conversion 通道从由 OUTPUT_OPTIONS 环境变量命名的文件读取 conversion 通道选项。请参见使用转换通道输出选项

command="msg_svr_base/bin/viro-scan500.sh" 指定将对邮件主体部分执行的命令。

表 13–3 转换通道环境变量

环境变量 

说明 

ATTACHMENT_NUMBER

用于当前部件的附件号。它与 ATTACHMENT-NUMBER 转换匹配参数的格式相同。 

CONVERSION_TAG

当前活动转换标记的列表。此列表与 TAG 转换匹配参数相对应。 

INPUT_CHANNEL

将邮件排队送到转换通道的通道。此通道与 IN-CHANNEL 转换匹配参数相对应。 

INPUT_ENCODING

最初存在于主体部分中的编码。 

INPUT_FILE

包含原始主体部分的文件的名称。站点提供的程序应读取此文件。 

INPUT_HEADERS

包含主体部分原始标题行的文件的名称。站点提供的程序应读取此文件。 

INPUT_TYPE

输入邮件部分的 MIME Content-type

INPUT_SUBTYPE

输入邮件部分的 MIME 内容子类型。 

INPUT_DESCRIPTION

输入邮件部分的 MIME content-description

INPUT_DISPOSITION

输入邮件部分的 MIME content-disposition

MESSAGE_HEADERS

文件名称,此文件包含封闭邮件(不只是主体部分)的原始最外层标题,或者包含该部分的最直接封闭 MESSAGE/RFC822 部分的标题。站点提供的程序应读取此文件。 

OUTPUT_CHANNEL

邮件被发送到的通道。此通道与 OUT-CHANNEL 转换匹配参数相对应。 

OUTPUT_FILE

文件名称,站点提供的程序应在此文件中存储其输出。站点提供的程序应创建并编写此文件。 

OUTPUT_HEADERS

文件名称,站点提供的程序应在此文件中存储封闭部分的 MIME 标题行。站点提供的程序应创建并编写此文件。请注意,文件应包含实际 MIME 标题行(而不是 option=value 行),后跟一个空行作为其最后一行。另请注意,只能对 MIME 标题行进行修改。其他通用的非 MIME 标题行不能通过转换通道进行更改。

OUTPUT_OPTIONS

文件名称,站点提供的程序应从此文件中读取转换通道选项。请参见使用转换通道输出选项

PART_NUMBER

当前部件的部件号。它与 PART-NUMBER 转换匹配参数的格式相同。 

PART_SIZE

要处理的部件的大小(字节)。 

邮件转换标记

邮件转换标记是与特定收件人或发件人关联的特殊标记。传送邮件时,该标记对于可能将其用于进行特殊处理的转换通道程序是可见的。转换标记储存在 LDAP 目录中。

可以按以下方式来使用邮件转换标记:管理员可以使用值为 harmonica 的邮件转换标记来设置选定的用户。然后,管理员将设置一个 conversion 通道,在处理邮件时,该通道将检测是否存在该标记和 harmonica 值。如果存在,程序将执行某个任意函数。

可以基于用户或域设置邮件转换标记。域级别的收件人 LDAP 属性为 MailDomainConversionTag(可以使用 MTA 选项 LDAP_DOMAIN_ATTR_CONVERSION_TAG 进行修改)。用户级别的收件人 LDAP 属性为 MailConversionTag(可以使用 MTA 选项 LDAP_CONVERSION_TAG 进行修改)。两种属性均可具有多个值,每个值指定一个不同的标记。与给定收件人相关联的标记集是可以积累的,即:将在域级别设置的标记与在用户级别设置的标记相结合。

基于发件人的转换标记可以使用 MTA 选项 LDAP_SOURCE_CONVERSION_TAGLDAP_DOMAIN_ATTR_SOURCE_CONVERSION_TAG 进行设置,这些选项将为与这些源地址相关联的转换标记分别指定用户和域级别的 LDAP 属性。这些选项都没有默认属性。