Sun Java System Messaging Server 6 2005Q4 管理指南

位址驗證之後擴充之前的路由

關鍵字:aliasdetourhost

aliasdetourhost 允許受託管使用者的 mailHost 屬性值進行來源通道專用置換。具體來說,aliasdetourhost 通常用於在目標為本機 (在此系統上進行託管) 使用者的郵件路由中實現「繞道」至單獨的主機,以進行某種處理。郵件 (該位址是合法的本機位址) 可以在原始主機上進行驗證,並繞道至處理主機,然後再傳回原始主機以進行擴充和遞送。

aliasdetourhost 允許更好地配置和使用通道和協力廠商篩選主機的「中間篩選」排序。除了使用替代轉換通道之外,還經常使用 aliasdetourhostaliasdetourhost 用於影響本機 (在此系統上進行託管) 使用者的路由,而替代轉換通道用於影響遠端收件者的路由。

aliasdetourhost 的引數為主機或網域名稱,或主機/網域規格。(請注意,重寫規則可處理主機名稱、IP 文字位址和暗示為主機名稱的通道標記。)如果在來源通道上指定關鍵字,將導致儲存在 LDAP 中的位址之別名擴充,正好在檢查郵件主機資訊之前 (處理轉換標記資訊之後) 停止。屆時,郵件將傳送至 aliasdetourhost 值,該位址也將 (在擴充別名之前驗證位址之後) 被視為已成功處理。

以下範例說明 aliasdetourhost 可用於避免各種與轉換通道篩選有關的問題:假設系統設置有前端 MTA 和後端郵件儲存。使用者的傳送選項設定為 forwardmailbox。MTA 使用防毒/垃圾郵件系統的替代轉換通道。當郵件抵達此使用者後,MTA 別名擴充並產生兩個收件者:本機收件者和遠端收件者。遠端收件者的副本可直接傳送。而移至轉換通道的本機收件者之副本先進行掃描,然後傳回。然後第二次套用別名擴充,以便為遠端收件者產生另一個副本,而本機收件者的副本會正常傳送。結果:遠端收件者有兩個副本,本機收件者有一個副本。

透過使用 aliasdetourhost 的通道,而不是使用本機託管使用者的替代轉換通道 (但是仍可能使用其他收件者的替代轉換通道),可執行以下作業:

範例 1

假設協力廠商掃描程式在與 MTA 不同的單獨主機上執行。以下範例允許使用使用者項目轉寄,而無需建立虛假複製件,同時保留在接受郵件之前執行收件者位址驗證的能力。

  1. 建立新的通道 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
    
  2. aliasDetourHosttcp_scanner-daemon 增加至要掃描的所有內送來源 tcp 通道 (可能包含 tcp_local、tcp_submittcp_intranettcp_auth) 上的 tcp_local。以下是 tcp_localtcp_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 的正式主機名稱。

  3. 建立重寫規則,以透過 tcp_scanner 通道從掃描系統收回郵件。

    [1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon

    其中 1.2.3.4 為掃描程式系統的位址。

    如果未建立該重寫規則,郵件將透過其他 tcp* 來源通道進入,並且郵件將再次被掃描,因為所有郵件都具有 aliasdetourhost。將發生迴圈。

  4. 重新編譯您的配置並重新啟動派送程式。


    #imsimta cnbuild
    #imsimta restart dispatcher
    

範例 2

假設協力廠商掃描儀在與 MTA 相同的主機上執行,但偵聽不同的連接埠。假設郵件在連接埠 10024 上被接受並轉送回 10025 上。

  1. 建立新的通道 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
  2. aliasDetourHosttcp_scanner-daemon 增加至要掃描的所有內送來源 tcp 通道 (可能包含 tcp_localtcp_submittcp_intranet 等) 上的 tcp_local。以下是 tcp_localtcp_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
  3. 增加至對映檔案,以透過 tcp_scanner 通道重新路由外寄郵件。

    CONVERSIONS
    
    in-chan=tcp_scanner;out-chan=*;CONVERT     No
    in-chan=tcp_*;out-chan=tcp_local;CONVERT   Yes,Channel=tcp_scanner
  4. job_controller.cnfSMTP_POOL 之下,增加對同步運作的掃描的數目限制。

    儘管也應限制掃描軟體,但是保持設定相同是可取的。這樣,當掃描器不接受郵件時,郵件傳送伺服器就不會嘗試向該掃描器傳送郵件了。


    !
    [POOL=SCAN_POOL]
    job_limit=2
    !
  5. 將新的服務增加至 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
    !
  6. 重新編譯您的配置並重新啟動派送程式。


    # imsimta cnbuild
    # imsimta restart job_controller
    # imsimta restart dispatcher