本節描述其他關鍵字。包含以下各節:
關鍵字:notificationchannel、dispositionchannel
這些關鍵字分別將程序通道置換為最初形成遞送狀態通知 (DSN) 和郵件處理通知 (MDN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。
notificationchannel 將程序通道置換為最初形成傳送狀態通知 (DSN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。
dispositionchannel 將程序通道置換為最初形成郵件處理通知 (MDN) 佇列的位置。如果命名的通道不存在,則 Messaging Server 將使用程序通道繼續。
Messaging Server 支援 RFC 2476 的郵件提交協定。submit 可用於將通道標記為僅供提交的通道。這通常對於 TCP/IP 通道最有用,例如在完全用於提交郵件的特殊連接埠上執行的 SMTP 伺服器;RFC 2476 建立連接埠 587 供此類郵件提交之用。
關鍵字:user
user 關鍵字在 pipe 通道上用於指示執行時使用的使用者名稱。
請注意,user 的引數通常必須小寫,但如果該引數加上引號,便可保留原始大小寫形式。
關鍵字:filter、 nofilter、channelfilter、nochannelfilter、 destinationfilter nodestinationfilter、 sourcefilter、 nosourcefilter、 fileinto 和 nofileinto)
filter 關鍵字可用於原生通道和 ims-ms 通道,以指定通道的使用者篩選器檔案位置。它接受說明篩選器檔案位置所必需的 URL 引數。nofilter 為預設,表示此通道未啟用使用者電子信箱篩選器。
sourcefilter 和 destinationfilter 關鍵字可用於一般 MTA 通道,指定通道層級的篩選器,以分別套用於內送的郵件和外寄的郵件。這些關鍵字接受說明通道篩選器檔案位置所必需的 URL 引數。nosourcefilter 和 nodestinationfilter 為預設,表示通道任一方向均未啟用通道電子信箱篩選器。
棄用的 channelfilter 和 nochannelfilter 關鍵字分別是 destinationfilter 和 nodestinationfilter 的同義詞。
fileinto 關鍵字目前只支援 ims-ms 和 LMTP 通道,可指定套用電子信箱篩選器 fileinto 運算子時如何改變位址。對於 ims-ms 通道,通常的用法是:
fileinto $U+$S@$D
上述用法指定資料夾名稱應作為子位址插入至原始位址中,取代任何原有子位址。
對於 LMTP 通道,通常的用法是:
fileinto @$4O:$U+$S@$D
其中,$4O 是 4 和字母 O (不是數字零)。
關鍵字:destinationspamfilterXoptin、sourcespamfilterXoptin
destinationspamfilterXoptin 指定傳送至此通道的所有郵件均透過篩選軟體 X 執行。(在 option.dat 中,篩選軟體 X 由 spamfilterX_library 定義。)此關鍵字後接篩選器參數,可用的參數視篩選程式而定。
sourcespamfilterXoptin 指定從此通道發送的所有郵件均透過篩選軟體 X 執行。(在 option.dat 中,篩選軟體 X 由 spamfilterX_library 定義。)此關鍵字後接系統範圍的預設參數,可用的參數視篩選程式而定。如果 switchchannel 生效,則應將此關鍵字置於切換至的通道上。
如需有關這些關鍵字使用方法的詳細資訊,請參閱指定通道級別的篩選。
aliasdetourhost 允許受託管使用者的 mailHost 屬性值進行來源通道專用置換。具體來說,aliasdetourhost 通常用於在目標為本機 (在此系統上進行託管) 使用者的郵件路由中實現「繞道」至單獨的主機,以進行某種處理。郵件 (該位址是合法的本機位址) 可以在原始主機上進行驗證,並繞道至處理主機,然後再傳回原始主機以進行擴充和遞送。
aliasdetourhost 允許更好地配置和使用通道和協力廠商篩選主機的「中間篩選」排序。除了使用替代轉換通道之外,還經常使用 aliasdetourhost。aliasdetourhost 用於影響本機 (在此系統上進行託管) 使用者的路由,而替代轉換通道用於影響遠端收件者的路由。
aliasdetourhost 的引數為主機或網域名稱,或主機/網域規格。(請注意,重寫規則可處理主機名稱、IP 文字位址和暗示為主機名稱的通道標記。)如果在來源通道上指定關鍵字,將導致儲存在 LDAP 中的位址之別名擴充,正好在檢查郵件主機資訊之前 (處理轉換標記資訊之後) 停止。屆時,郵件將傳送至 aliasdetourhost 值,該位址也將 (在擴充別名之前驗證位址之後) 被視為已成功處理。
以下範例說明 aliasdetourhost 可用於避免各種與轉換通道篩選有關的問題:假設系統設置有前端 MTA 和後端郵件儲存。使用者的傳送選項設定為 forward 和 mailbox。MTA 使用防毒/垃圾郵件系統的替代轉換通道。當郵件抵達此使用者後,MTA 別名擴充並產生兩個收件者:本機收件者和遠端收件者。遠端收件者的副本可直接傳送。而移至轉換通道的本機收件者之副本先進行掃描,然後傳回。然後第二次套用別名擴充,以便為遠端收件者產生另一個副本,而本機收件者的副本會正常傳送。結果:遠端收件者有兩個副本,本機收件者有一個副本。
透過使用 aliasdetourhost 的通道,而不是使用本機託管使用者的替代轉換通道 (但是仍可能使用其他收件者的替代轉換通道),可執行以下作業:
接受郵件。
將郵件路由至外部垃圾郵件病毒篩選器
重新接受郵件以進行位址擴充和遞送。
範例 1:
假設協力廠商掃描程式在與 MTA 不同的單獨主機上執行。以下範例允許使用使用者項目轉寄,而無需建立虛假複製件,同時保留在接受郵件之前執行收件者位址驗證的能力。
建立新的通道 tcp_scanner。
在該通道上放置 daemon 關鍵字,並指向篩選系統。將 enqueue_removeroute 增加至此通道。tcp_scanner 通道在 imta.cnf 中表現為:
tcp_scanner smtp mx single_sys subdirs 20 noreverse maxjobs 7 pool SMTP_POOL daemon my_a-v_filter.siroe.com enqueue_removeroute tcp_scanner-daemon |
將 aliasDetourHosttcp_scanner-daemon 增加至要掃描的所有內送來源 tcp 通道 (可能包含 tcp_local、tcp_submit、tcp_intranet 和 tcp_auth) 上的 tcp_local。以下是 tcp_local 和 tcp_submit 的範例。
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
請注意,aliasdetourhost 的引數 (tcp_scanner-daemon) 是新通道 tcp_scanner 的正式主機名稱。
建立重寫規則,以透過 tcp_scanner 通道從掃描系統收回郵件。
[1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon
其中 1.2.3.4 為掃描程式系統的位址。
如果未建立該重寫規則,郵件將透過其他 tcp* 來源通道進入,並且郵件將再次被掃描,因為所有郵件都具有 aliasdetourhost。將發生迴圈。
重新編譯您的配置並重新啟動派送程式。
#imsimta cnbuild #imsimta restart dispatcher |
範例 2:
假設協力廠商掃描儀在與 MTA 相同的主機上執行,但偵聽不同的連接埠。假設郵件在連接埠 10024 上被接受並轉送回 10025 上。
建立新的通道 tcp_scanner。
! tcp_scanner tcp_scanner smtp nomx single_sys identnonenumeric subdirs 20 maxjobs 7 pool SCAN_POOL daemon 127.0.0.1 port 10024 enqueue_removeroute tcp_scanner-daemon |
將 aliasDetourHosttcp_scanner-daemon 增加至要掃描的所有內送來源 tcp 通道 (可能包含 tcp_local、tcp_submit 和 tcp_intranet 等) 上的 tcp_local。以下是 tcp_local 和 tcp_submit 的範例。
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserversaslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
增加至對映檔案,以透過 tcp_scanner 通道重新路由外寄郵件。
CONVERSIONS in-chan=tcp_scanner;out-chan=*;CONVERT No in-chan=tcp_*;out-chan=tcp_local;CONVERT Yes,Channel=tcp_scanner
在 job_controller.cnf 的 SMTP_POOL 之下,增加對同步運作的掃描的數目限制。
儘管也應限制掃描軟體,但是保持設定相同是可取的。這樣,當掃描器不接受郵件時,郵件傳送伺服器就不會嘗試向該掃描器傳送郵件了。
! [POOL=SCAN_POOL] job_limit=2 ! |
將新的服務增加至 dispatcher.cnf,以接受從特殊連接埠上的掃描器傳回的郵件,並從 tcp_scan 中獲得該郵件來源,以便不再掃描該郵件。
! [SERVICE=SMTP_SCANNING] INTERFACE_ADDRESS=127.0.0.1 PORT=10025 IMAGE=IMTA_BIN:tcp_smtp_server LOGFILE=IMTA_LOG:tcp_smtp_server.log STACKSIZE=2048000 PARAMETER=CHANNEL=tcp_scanner ! |
重新編譯您的配置並重新啟動派送程式。
# imsimta cnbuild # imsimta restart job_controller # imsimta restart dispatcher |
關鍵字:sourcenosolicit、destinationnosolicit
網際網路草案 draft-malamud-no-soliciting-07.txt 中說明的 NO-SOLICIT SMTP 延伸已經作為建議的標準在 Messaging Server 中實作了。以下通道關鍵字可以用於控制此功能:
sourcenosolicit 指定請求欄位值清單 (用逗號分隔),由此通道提交的郵件將阻斷這些值。此值清單將顯示在 NO-SOLICIT EHLO 回應中。全域樣式的萬用字元可以用於這些值,但是,包含萬用字元的值不會顯示在 EHLO 通知中。
destinationnosolicit 指定請求欄位值清單 (用逗號分隔),在此通道形成佇列的郵件將拒絕這些值。
設定在單一階段作業期間允許的錯誤 RCPT TO: 位址數目的限制。在 To: 位址的指定數目被拒絕後,後續的所有收件者 (正確的或錯誤的) 都會因為 4xx 錯誤而被拒絕。提供與 ALLOW_REJECTIONS_BEFORE_DEFERRAL SMTP 通道關鍵字相同的功能,但針對的是每個通道。