可以将 out-parameter-* 值存储在任意命名的映射表中,也可以在这样的文件中对其进行检索。某些客户端使用普通名称(例如 att.dat )发送所有附件,不管附件是属于 postscript、 msword、text 还是其他任何类型,上述功能对于重命名这些客户端发送的附件很有用。这是重新标记邮件部分,以便其他客户端(例如 Outlook)能够通过读取扩展名来打开邮件部分的普通方法。
从映射表检索参数值的语法如下:
”mapping-table-name:mapping-input[$Y, $N]’
$Y 将返回一个参数值。如果未找到匹配,或者匹配返回 $N,将忽略转换文件条目中的此参数,或将其看作空字符串。缺少匹配或返回 $N 不会导致转换条目本身被中止。
请仔细阅读以下映射表:
X-ATT-NAMES postscript temp.PS$Y wordperfect5.1 temp.WPC$Y msword temp.DOC$Y |
用于上述映射表的以下转换条目将导致在附件中使用特定的文件名称替换普通文件名称:
out-chan=tcp_local; in-type=application; in-subtype=*; in-parameter-name-0=name; in-parameter-value-0=*; out-type=application; out-subtype=’INPUT-SUBTYPE’; out-parameter-name-0=name; out-parameter-value-0=”’X-ATT-NAMES:\\’INPUT_SUBTYPE\\''"; command="cp ”INPUT_FILE’ ”OUTPUT_FILE’"
在以上示例中,out-chan=tcp_local; in-type=application; in-subtype=* 指定要处理的邮件必须来自 content-type 标题为 application/*(* 指定任何子类型都可以)的 tcp_local 通道。
in-parameter-name-0=name; in-parameter-value-0=* 进一步指定邮件必须具有参数类型 name=*(同样,* 指定任何参数值都可以。)
out-type=application; 指定邮件处理后的 MIME Content-type 参数为 application。
out-subtype=’INPUT-SUBTYPE’; 指定正文部分处理后的 subtype 参数为 INPUT-SUBTYPE 环境变量,它是输入 subtype 的原始值。因此,如果要将
Content-type: application/xxxx; name=foo.doc
更改为
Content-type: application/msword; name=foo.doc
您需要使用
out-type=application; out-subtype=msword
out-parameter-name-0=name; 指定输出正文部分的第一个 MIME Content-type 参数为类型 name=。
out-parameter-value-0=’X-ATT-NAMES:\\’INPUT_SUBTYPE\\’’; 指定使用第一个 MIME subtype 参数值,并在映射表 X-ATT-NAMES 中搜索匹配的 subtype。如果找到匹配项,name 参数将接收 X-ATT-NAMES 映射表中指定的新值。因此,如果参数类型为 msword,则 name 参数将为 temp.DOC。