可以本地化传送状态通知邮件,以便将邮件以不同的语言返回给不同用户。例如,可以将法语通知返回给首选使用法语的用户。
本地化或自定义状态通知邮件包括两个步骤:
创建一组本地化/自定义的 return_*.txt 邮件文件,并将每组文件存储在单独的目录中。10.10.1 构造和修改状态通知中说明了此操作
设置 NOTIFICATION_LANGUAGE 映射表。
NOTIFICATION_LANGUAGE 映射表(位于 msg-svr-base/config/mappings 中)根据原始邮件(导致系统发出通知的邮件)的属性(例如,语言、国家/地区、域或地址),指定要使用的一组本地化或自定义的通知邮件文件。
原始发件人的邮件将被解析以确定状态通知类型、源通道、首选语言、返回地址及第一收件人。根据该表的构造方式,将根据以上的一个或多个属性来选择一组通知文件。
NOTIFICATION_LANGUAGE 映射表的格式如下所示。由于印刷原因,该样例条目行经过了换行。实际条目应显示在一行中。
NOTIFICATION_LANGUAGE dsn-type-list|source-channel|preferred-language|return-address \ |first-recipient $Idirectory-spec |
dsn-type-list 是以逗号分隔的传送状态通知类型列表。如果指定了多种类型,则这些类型必须由逗号分隔,中间不能包含空格(空格将终止映射表条目的模式)。这些类型如下:
failed—通用的永久性错误消息(例如,无此用户)。使用 return_failed.txt 文件。
bounced—与手动“退回”结合使用的通知邮件。由邮寄主管完成。使用 return_bounced.txt 文件。
timedout—MTA 无法在允许的传送时间内传送邮件。邮件将被返回。使用 return_timedout.txt 文件。
delayed—MTA 一直无法传送邮件,但将继续尝试传送。使用 return_delayed.txt 文件。
deferred—与 "delayed" 类似的未传送通知,但没有指示 MTA 将继续尝试传送的时间。使用 return_deferred.txt 文件。
forwarded—为此邮件请求了传送回执,但是该邮件现已被转发给不支持此类回执的系统。使用 return_forwarded.txt 文件。
source-channel 是生成通知邮件的通道,即邮件当前排队的通道。例如,ims-ms 对应于消息存储的传送队列,tcp_local 对应于出站 SMTP 队列,等等。
preferred-language 是正在处理的邮件(为其生成通知的邮件)中所使用的语言。此信息的源最初是 accept_language 字段。如果该字段不存在,则使用 Preferred-language: 标题字段和 X-Accept-Language: 标题字段。有关标准语言代码值的列表,请参阅文件 msg-svr-base /config/languages.txt
如果此字段不为空,则它将成为对 Preferred-language: 或 X-Accept-language: 标题行指定的邮件创始者。因此,您可以在此字段中找到无意义的字符。
return-address 是原始邮件的信封的 From: address。它是要向其发送通知邮件的信封地址,因此也是要使用的语言的指示符。
first-recipient 是原始邮件发往的信封的 To: 地址(如果邮件无法到达多个收件人处则为第一个地址)。例如,在通知“无法将您的邮件传送至 dan@siroe.com 中”的情况下,dan@siroe.com 即为报告的信封 To: 地址。
directory-spec 是是包含要使用的 return_*.txt 文件的目录(如果映射表探测匹配)。请注意,$I 必须位于目录规范之前。
例如,在 /lc_messages/table/notify_french/ 目录中存储法语通知文件 (return_*.txt) 以及在 /lc_messages/table/notify_spanish/ 目录下的 return_*.txt 文件中存储西班牙语通知文件的站点可能使用如下所示的表。注意,每个条目的开始处都必须有一个或多个空格,并且条目之间可以不含空行。
NOTIFICATION_LANGUAGE
! Preferred-language: header value specified
!
*|*|fr|*|* $I/lc_messages/table/notify_french/
*|*|es|*|* $IIMTA_TABLE/notify_spanish/
*|*|en|*|* $I/imta/lang/
!
! If no Preferred-language value, then select notification based on the
! country code in the domain name. EX: PF=French Polynesia; BO=Bolivia
!
*|*|*|*.fr|* $I/imta/table/notify_french/
*|*|*|*.fx|* $I/imta/table/notify_french/
*|*|*|*.pf|* $I/imta/table/notify_french/
*|*|*|*.tf|* $I/imta/table/notify_french/
*|*|*|*.ar|* $I/imta/table/notify_spanish/
*|*|*|*.bo|* $I/imta/table/notify_spanish/
*|*|*|*.cl|* $I/imta/table/notify_spanish/
*|*|*|*.co|* $I/imta/table/notify_spanish/
*|*|*|*.cr|* $I/imta/table/notify_spanish/
*|*|*|*.cu|* $I/imta/table/notify_spanish/
*|*|*|*.ec|* $I/imta/table/notify_spanish/
*|*|*|*.es|* $I/imta/table/notify_spanish/
*|*|*|*.gp|* $I/imta/table/notify_spanish/
*|*|*|*.gt|* $I/imta/table/notify_spanish/
*|*|*|*.gy|* $I/imta/table/notify_spanish/
*|*|*|*.mx|* $I/imta/table/notify_spanish/
*|*|*|*.ni|* $I/imta/table/notify_spanish/
*|*|*|*.pa|* $I/imta/table/notify_spanish/
*|*|*|*.ve|* $I/imta/table/notify_spanish/
|
安装时将提供默认的 mappings.locale 文件,并将其包含在启用通知语言映射的 mappings 文件中。要禁用通知语言映射,请注释以下包含行:
! <IMTA_TABLE:mappings.locale
(请阅读该文件中的注释并根据您的需要进行修改。)