重寫位址的程序透過從位址中擷取第一個主機或網域規格開始。(建議不熟悉 RFC 822 位址慣例的讀者閱讀該標準,以理解以下討論內容。)位址中主機/網域規格的掃描順序如下︰
來源路由中的主機 (從左至右讀取)
顯示在「at」符號 (@) 右側的主機
顯示在最後一個單百分比符號 (%) 右側的主機
顯示在第一個驚嘆號 (!)
如果 bangoverpercent 關鍵字在正在執行位址重寫的通道上有效,則最後兩個項目的順序將被交換。亦即,嘗試將郵件排入佇列的通道本身是否標記有 bangoverpercent 通道關鍵字。
在表 11–3 中顯示了一些可以首先擷取的位址和主機名稱範例。
表 11–3 擷取的位址和主機名稱
位址 |
第一個主機網域規格 |
註釋 |
---|---|---|
user@a |
a |
「縮寫」網域名稱。 |
user@a.b.c |
a.b.c | |
user@[0.1.2.3] |
[0.1.2.3] |
「網域文字」。 |
@a:user@b.c.d |
a | |
@a.b.c:user@d.e.f |
a.b.c |
來源路由的位址;路由部分是完全合格的。 |
@[0.1.2.3]:user@d.e.f |
[0.1.2.3] |
來源路由的位址;路由部分是網域文字。 |
@a,@b,@c:user@d.e.f |
a |
包含 a 至 b 至 c 路由的來源路由位址。 |
@a,@[0.1.2.3]:user@b |
a |
在路由部分中包含網域文字的來源路由位址。 |
user%A@B |
B | |
user%A |
A | |
user%A%B |
B | |
user%%A%B |
B | |
A!user |
A |
「Bang 樣式」定址;通常用於 UUCP。 |
A!user@B |
B | |
A!user%B@C |
C | |
A!user%B |
B | |
A!user%B |
A |
RFC 822 不會指向位址中的驚嘆號 (!) 和百分比符號 (%) 的解釋。如果 at 符號 (@) 不存在,則通常使用與 at 符號相同的方式解譯百分比符號,因此 Messaging Server MTA 採用此慣例。
重複的百分比符號之特殊解譯用來允許將百分比符號做為本機使用者名稱的一部分,這在處理某些外部郵件系統位址時會十分有用。驚嘆號的解譯符合 RFC 976 的「bang 樣式」位址慣例,並可以配合使用 UUCP 位址和 Messaging Server MTA。
這些解譯的順序不是由 RFC 822 或 RFC 976 指定,因此可以使用 bangoverpercent 和 nobangoverpercent 關鍵字來控制執行重寫的通道套用它們的順序。雖然在某些情況下替代設定可能很有用,但預設更「標準」。
不建議在位址中使用驚嘆號 (!) 或百分比符號 (%)。