重寫規則位於 MTA 配置檔案 imta.cnf 的上半部分。配置檔案中的每個規則顯示在單一行中。規則之間允許出現註釋,但不允許有空白行。重寫規則以空白行結束,後面是通道定義。以下範例顯示部分配置檔案的重寫規則區段。
! test.cnf - An example configuration file. ! ! This is only an example of a configuration file. It serves ! no useful purpose and should not be used in a real system. ! a.com $U@a-host b.org $U@b-host c.edu $U%c@b-daemon d.com $U%d@a-daemon ! Begin channel definitions |
重寫規則包括兩個部分:式樣,後跟等效字串或範本。這兩個部分必須以空格分隔,但這兩部分內部不允許有空格。重寫規則的結構如下:
pattern template |
pattern
表示要在網域名稱中搜尋的字串。在表 11–3 中,式樣包含 a.com、b.org、c.edu 和 d.com。
如果式樣匹配位址的網域部分,則重寫規則將套用至位址。必須以空格分隔式樣和範本。如需有關式樣語法的更多資訊,請參閱重寫規則式樣和標記。
template
是以下其中之一:
UserTemplate%DomainTemplate@ChannelTag[controls] UserTemplate@ChannelTag[controls] UserTemplate%DomainTemplate[controls] UserTemplate@DomainTemplate@ChannelTag[controls] UserTemplate@DomainTemplate@SourceRoute@ChannelTag[controls]
其中
UserTemplate 指定如何重寫位址的使用者部分。可以使用替換序列來表示原始位址部分或資料庫查詢的結果。用替換序列所代表的內容取代它們,以建構重寫位址。在表 11–4 中,使用了 $U 替換序列。如需更多資訊,請參閱範本替換和重寫規則控制序列。
DomainTemplate 指定如何重寫位址的網域部分。與 UserTemplate 相同,DomainTemplate 也可以包含替換序列。
ChannelTag 表示此郵件要傳送至的通道。(所有通道定義必須包含通道標記和通道名稱。通道標記通常在重寫規則及其通道定義中出現。)
controls。規則的適用性可以使用控制項進行限制。某些控制序列必須顯示在規則的開頭;其他 controls 必須顯示在規則的結尾。如需有關控制項的更多資訊,請參閱範本替換和重寫規則控制序列。
如需有關範本語法的更多資訊,請參閱重寫規則範本。