Sun Java System Messaging Server 6.3 管理指南

13.6.3 服务转换

可以将 MTA 的转换服务功能与站点提供的程序一起用于处理邮件,以生成新格式的邮件。上述类型的 CHARSET-CONVERSION 操作和 conversion 通道操作都是在个别 MIME 邮件部分的内容中进行的,转换服务与它们不同,它是在整个 MIME 邮件部分(MIME 标题和内容)以及整个 MIME 邮件中进行的。此外,与其他 CHARSET-CONVERSION 操作或转换通道操作不同,转换服务需要自己进行 MIME 分解、解码、重新编码和重新组合。

与其他 CHARSET-CONVERSION 操作一样,转换服务通过 CHARSET-CONVERSION 映射表启用。如果 CHARSET-CONVESION 映射表的第一次探测产生了 YesAlways 关键字,则 MTA 将检查 MTA conversions 文件是否存在。如果 conversions 文件存在,MTA 将在其中查找指定 SERVICE-COMMAND 的条目,如果找到这样的条目,则予以执行。conversions 文件条目应具有以下格式:


in-chan=channel-pattern; 
  in-type=type-pattern; in-subtype=subtype-pattern; 
  service-command=command

command 字符串是最重要的。它是执行服务转换时应该执行的命令(例如调用文档转换器)。命令必须处理一个输入文件,其中包含要服务的邮件文本,并生成一个输出文件,其中包含新邮件文本。在 UNIX 中,如果操作成功,命令必须使用“0”退出,否则使用非零值退出。

例如,如下所示的 CHARSET-CONVERSION

CHARSET-CONVERSION

IN-CHAN=bsout_*;OUT-CHAN=*;CONVERT Yes

与以下 UNIX 上的 MTA conversions 文件条目:


in-chan=bsout_*; in-type=*; in-subtype=*; 
service-command="/pmdf/bin/compress.sh compress $INPUT_FILE $OUTPUT_FILE"

的组合将使来自 BSOUT 通道的所有邮件均被压缩。

环境变量用于传递输入文件名称、输出文件名称以及包含邮件信封收件人地址列表的文件的名称。这些环境变量的名称如下:

通过使用标准命令行替换可以将这三个环境变量的值替换到命令行中:即在变量名称前加 UNIX 美元字符。例如,如果 INPUT_FILEOUTPUT_FILE 的值分别为 a.in 和 a.out,则在 UNIX 上有如下声明:


in-chan=bsout_*; in-type=*; in-subtype=*; 
 service-command="/pmdf/bin/convert.sh $INPUT_FILE $OUTPUT_FILE"

系统将执行以下命令

/pmdf/bin/convert.sh a.in a.out