Sun Java System Messaging Server 6.3 管理指南

16.5 配置 LMTP 傳送

配置 LMTP 遞送機制時,必須對轉送機器與後端儲存進行配置。在轉送器上,必須變更 DELIVERY_OPTIONS MTA 選項 (在 option.dat 中),以便將要遞送至儲存區的郵件傳送至 LMTP 通道。必須使用派送程式 (但不需要工作控制器) 配置後端儲存。必須配置派送程式以執行 LMTP 伺服器。

在典型的多層部署中,使用者佈建在不同的後端郵件儲存機器上。這些後端機器中的一台或多台可能並未開啟 LMTP,因此前端轉送需要瞭解哪些儲存機器可識別 LMTP。您可以使用一般資料庫功能明確命名那些配置為接受 LMTP 遞送的郵件儲存,以實現此目的。

Procedure使用 LMTP 配置內送 MTA 轉送

若要配置內送 MTA 轉送以使用 LMTP,請執行以下作業:

  1. 修改 imta.cnf 檔案並變更 LMTP 重寫規則,以讀取:


    ! lmtp
    .lmtp   $E$F$U%$H.lmtp@lmtpcs-daemon
    .lmtp   $B$F$U%$H@$H@lmtpcs-daemon
    !
    ! lmtp native
    .lmtpn  $E$F$U%$H.lmtpn@lmtpcn-daemon
    .lmtpn  $B$F$U%$H@$H@lmtpcn-daemon
    !
  2. 將電子信箱 DELIVERY_OPTIONS 設為:


    #*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon
  3. 將本機 DELIVERY_OPTIONS 陳述式設為:


    #*native=@$X.LMTPN:$M+$2S@native-daemon
  4. 將通道關鍵字 multigate connectcanonical 增加到每個 tcp_lmtp* 通道區塊中。

  5. 將下列通道關鍵字增加至 tcp_lmtpcs 通道:


    fileinto @$4O:$U+$S@$D

    請注意,上述關鍵字的 O 為大寫字母 O,不是零。

  6. 內送 MTA 轉送配置設定應如下所示:

    DELIVERY_OPTIONSoption.dat 項目應如下所示:


    !------------------------------------------
    ! Modified DELIVERY_OPTIONS to activate LMTP 
    ! delivery from a frontend to the backend store
    !--------------------------------------------
    !
    DELIVERY_OPTIONS=\
        #*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon,\
        #&members=*,\
        #*native=@$X.LMTPN:$M+$2S@native-daemon,\
        #*unix=@$X.LMTPN:$M,\
        #*file=@$X.LMTPN:+$F,\
        #&@members_offline=*,\
        #/hold=@hold-daemon:$A,\
        #program=$M%$P@pipe-daemon,\
        #forward=**,\
        #*^!autoreply=$M+$D@bitbucket
    !

    變更修改的 imta.cnf 重寫規則之後,應如下所示:


    ! lmtp
    .lmtp   $E$F$U%$H.lmtp@lmtpcs-daemon
    .lmtp   $B$F$U%$H@$H@lmtpcs-daemon
    !
    ! lmtp native
    .lmtpn  $E$F$U%$H.lmtpn@lmtpcn-daemon
    .lmtpn  $B$F$U%$H@$H@lmtpcn-daemon
    !

    變更後的通道區塊應如下所示:


    !
    ! tcp_lmtpcs (LMTP client - store)
    tcp_lmtpcs defragment lmtp  multigate connectcanonical \
       fileinto @$4O:$U+$S@$D port 225 nodns single_sys \
       subdirs 20 maxjobs 7 pool SMTP_POOL dequeue_removeroute
    lmtpcs-daemon
    
    !
    ! tcp_lmtpcn (LMTP client - native)
    tcp_lmtpcn defragment lmtp multigate connectcanonical port 226 \
       nodns single_sys subdirs 20 maxjobs 7 pool SMTP_POOL \
       dequeue_removeroute
    lmtpcn-daemon

16.5.1 配置使用 LMTP 和最小 MTA 的後端儲存

如果後端儲存經由 LMTP 接收郵件,則只需要最小 MTA。其需要派送程序、工作控制器和簡單的 MTA 配置。尤其是,它們需要 dispatcher.cnfjob_controller.cnfmappings 檔案,這些檔案將構成 MTA 配置唯一的重要部分。

dispatcher.cnf 檔案必須包含以下內容:


! VERSION=1.1
! IMTA default dispatcher configuration file
!
! Global defaults
!
MIN_PROCS=1
MAX_PROCS=10
MIN_CONNS=30
MAX_CONNS=50
MAX_SHUTDOWN=2
MAX_LIFE_TIME=86400
MAX_LIFE_CONNS=10000
MAX_IDLE_TIME=600
HISTORICAL_TIME=0
!
! rfc 2033 LMTP server - store
!
[SERVICE=LMTPSS]
PORT=225
IMAGE=IMTA_BIN:tcp_lmtp_server
LOGFILE=IMTA_LOG:tcp_lmtpss_server.log
PARAMETER=CHANNEL=tcp_lmtpss
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an
! appropriate host IP (dotted quad) if the dispatcher needs to
! listen on a specific interface (e.g. in a HA environment).
! INTERFACE_ADDRESS=!
! rfc 2033 LMTP server - native
!
[SERVICE=LMTPSN]
PORT=226
IMAGE=IMTA_BIN:tcp_lmtpn_server
LOGFILE=IMTA_LOG:tcp_lmtpsn_server.log
PARAMETER=CHANNEL=tcp_lmtpsn
STACKSIZE=2048000

請注意,依預設,對 dispatcher.cnf 檔案中的 LMTP 服務均已進行註釋。您必須取消註釋,才能使 LMTP 運作。

您也可以設定 MAX_CONNSMAX_PROCSMAX_LIFE_CONNSMAX_LIFE_TIME 的一般派送程式選項,但設定時必須符合硬體要求。

PORT_ACCESS 對映是很重要的。後端伺服器的 LMTP 實作將用做 Sun Java System Messaging Server 轉送器和後端儲存之間的專用協定。必須使用 PORT_ACCESS 對映以確保僅此類轉送器可以連線至這些服務。您的對映檔案應類似於:


PORT_ACCESS

  TCP|*|225|192.18.74.206|* $Y
  TCP|*|226|192.18.74.206|* $Y
  TCP|*|225|192.18.74.129|* $Y
  TCP|*|226|192.18.74.129|* $Y
  TCP|*|*|*|*   $N500$ Do$ not$ connect$ to$ this$ machine

以上的 IP 位址是 LMTP 伺服器和用戶端 IP 位址。應使用網路上連線至後端儲存的轉送器 IP 位址替代此處 PORT_ACCESS 對映表中指定的範例 IP 位址。

必須有一個 imta.cnf 檔案,但它僅用於使配置完整。最小的 imta.cnf 檔案應包含以下通道定義:

!
! IMTA configuration file
!
! tcp_lmtpss (LMTP server - store)
tcp_lmtpss lmtp
tcp_lmtpss-daemon

!
! tcp_lmtpsn (LMTP server - native)
tcp_lmtpsn lmtp
tcp_lmtpsn-daemon

請注意,依預設,LMTP 通道定義已被註釋。如果您要 LMTP 運作,必須取消註釋。

您可以使用安裝時建立的預設 job_controller.cnf 檔案。此檔案不需要修改。

16.5.2 配置轉送以經由 LMTP 將郵件傳送至帶有郵件儲存和完整 MTA 的後端系統

在某些情況下,您可能希望後端儲存具有 MTA 的完整功能,但仍具有使用 LMTP 的載入保存功能。例如,您可能需要後端儲存上的程式遞送。這種情況下,應按以上使用 LMTP 配置內送 MTA 轉送中的說明配置轉送器。

16.5.3 在具有完整 MTA 的後端郵件儲存系統上配置 LMTP

從後端儲存郵件傳送系統的配置到使用 LMTP 直接傳送至儲存的配置的唯一變更是,需要將以下行加入 dispatcher.cnf 檔案的結尾:


! rfc 2033 LMTP server - store
![SERVICE=LMTPSS]
PORT=225
IMAGE=IMTA_BIN:tcp_lmtp_server
LOGFILE=IMTA_LOG:tcp_lmtpss_server.log
PARAMETER=CHANNEL=tcp_lmtpss
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
! listen on a specific interface (e.g. in a HA environment).
!INTERFACE_ADDRESS=
!
! rfc 2033 LMTP server - native
!
[SERVICE=LMTPSN]
PORT=226
IMAGE=IMTA_BIN:tcp_lmtpn_server
LOGFILE=IMTA_LOG:tcp_lmtpsn_server.log
PARAMETER=CHANNEL=tcp_lmtpsn
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
! listen on a specific! interface (e.g. in a HA environment).
!INTERFACE_ADDRESS=
!
         

請注意,依預設,對 dispatcher.cnf 檔案中的 LMTP 服務均已進行註釋。您必須取消註釋,才能使 LMTP 運作。此外,這些 LMTP 連接埠號只是範例,您可以選擇任何號碼。

這與以上整個 dispatcher.cnf 檔案就何時為後端儲存僅配置 LMTP 所說明的內容相同。對映檔案還需要 PORT_ACCESS 對映,正如僅 LMTP 僅需要後端儲存一樣。

16.5.4 處理回應 LMTP 郵件資料的 4.2.1 信箱忙碌錯誤

如果 LMTP 通道選項 MAILBOX_BUSY_FAST_RETRY 是設定為 1 (預設值),會處理回應 LMTP 郵件資料的 4.2.1 信箱忙碌錯誤,方法是在過一段任意的短暫間隔之後重試郵件;一般郵件 backoff 值不適用。將選項設定為 0 會停用此運作方式。