Sun Java System Messaging Server 6.3 管理指南

10.12 最佳化 MTA 效能

本小節說明 MTA 的各項最佳化。包含以下各節:

10.12.1 最佳化發送至郵件收信人清單的郵件 LDAP 目錄授權檢查

您可以使用中介字元的字元替換,減少發送至郵件收信人清單的郵件 LDAP 目錄授權檢查。

現在可以在 mgrpModeratormgrpAllowedBroadcastermgrpDisallowedBroadcaster 屬性中指定中介字元替換。而且,各種和位址相關的中介字元序列 ($A 適用於整個位址、$U 適用於電子信箱部分、$D 適用於網域部分) 都參考目前的訊息封 From: 位址,而且在某些情況下,可用來限制 URL 傳回可能 (或保證) 相符之項目的結果。這樣可以使授權檢查變得更有效率。

新的 MTA 選項 PROCESS_SUBSTITUTIONS 可控制是否在指定 URL 的各種 LDAP 中執行替換。這是個位元編碼值,其位元定義如下:

位元 

值 

說明 

在 mgrpDisallowedBroadcaster 中啟用替換 (如果設定) 

在 mgrpAllowedBroadcaster 中啟用替換 (如果設定) 

在 mgrpModerator 中啟用替換 (如果設定) 

在 mgrpDeliverTo 中啟用替換 (如果設定) 

16 

在 memberURL 中啟用替換 

MTA 選項 PROCESS_SUBSTITUTIONS 的預設值是 0,表示預設停用上述替換。

其中一項範例是透過 LDAP 查詢定義的動態清單,在清單上的任何人都有發佈的權限。在這種狀況下,您通常需要使用下列屬性定義清單:


mgrpAllowedBroadcaster:
ldap:///o=Sesta,c=US??sub?(&(objectClass=inetMailUser)(objectClass=inetOrgPerson))
mgrpDeliverTo:
ldap:///o=Sesta,c=US??sub?(&(objectClass=inetMailUser)(objectClass=inetOrgPerson)) 

然而,這類定義的效果是擴充清單兩次,一次是針對授權檢查,一次是用來建立實際收件者清單。這是相當頻繁的伺服器作業。另一方面,如果您新增限制,以便授權檢查只傳回包含目前訊息封 From: 位址的項目,則作業會更為有效率。首先將 PROCESS_SUBSTITUTION 設定變更為 2,然後您可以設定下列項目:


mgrpAllowedBroadcaster:
ldap:///o=Sesta,c=US??sub?(&(objectClass=inetMailUser)(objectClass=inetOrgPerson)
(mail=$A)
mgrpDeliverTo:
ldap:///o=Sesta,c=US??sub?(&(objectClass=inetMailUser)(objectClass=inetOrgPerson)) 

在此範例中,相對於 Sesta US 的全部使用者項目,這只會檢查寄件者項目的廣播授權。這會減少目錄伺服器必須針對單一 (可能經過索引) 相符項目和單一傳回值進行的作業。或者傳回整份清單,並且由 MTA 執行比對。

請注意,根據屬性是否用於授權檢查或實際清單擴充,替換可用的資訊會有所不同。對於授權屬性,整個位址 ($A)、網域 ($D)、主機 ($H) 和本機部分 ($L) 全部都來自經過認證的寄件者位址。對於清單擴充屬性,全部這些替換值都來自指定清單的訊息封收件者位址。然而,在這兩種狀況下,子位址替換 ($S) 是來自目前訊息封收件者位址。

存取擴充 URL 中子位址資訊的功能可定義 metagroups,這是建立不同群組整個集合的單一群組項目。例如,具有 mgrpDeliverTo 值為:

mgrpDeliverTo: ldap:///o=usergroup?mail?sub?(department=$S)

且對應的 PROCESS_SUBSTITUTIONS 值是 8 的群組。這可能將郵件傳送給位址格式為 group+department@domain.com 的指定部門的每一位成員。請注意,如果子位址不易辨識,轉寄對映之類的機制可用來變更語法。