配置 LMTP 傳送機制需要對轉送器和後端進行配置。在轉送器上,必須變更 DELIVERY_OPTIONS MTA 選項 (在 option.dat 中),以便將要傳送至儲存的郵件傳送至 LMTP 通道。必須使用派送程式 (但不需要工作控制器) 配置後端儲存。必須配置派送程式以執行 LMTP 伺服器。
在典型的多層部署中,使用者佈建在不同的後端郵件儲存機器上。這些後端機器中的一台或多台可能並未開啟 LMTP,因此前端轉送需要瞭解哪些儲存機器可識別 LMTP。您可以使用一般資料庫功能明確命名那些配置為接受 LMTP 遞送的郵件儲存,以實現此目的。
若要配置內送 MTA 轉送以使用 LMTP,請執行以下作業:
修改您的 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 ! |
將電子信箱 DELIVERY_OPTIONS 設定成:
#*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon |
將原生 DELIVERY_OPTIONS 表示式設定成:
#*native=@$X.LMTPN:$M+$2S@native-daemon |
將通道關鍵字 multigate connectcanonical 增加至每個 tcp_lmtp* 通道區段。
將下列通道關鍵字增加至 tcp_lmtpcs 通道:
fileinto @$4O:$U+$S@$D |
請注意,上述關鍵字的「O」為大寫字母 O,不是零。
內送 MTA 轉送配置設定應如下所示:
DELIVERY_OPTIONS 的 option.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 |
如果後端儲存經由 LMTP 接收郵件,則不需要 MTA。這表示它們沒有工作控制器,且沒有任何位址重寫工具與 MTA 關聯。但是,它們仍需要派送程式和簡單的 MTA 配置。特別是,它們需要 dispatcher.cnf 檔案和 mappings 檔案,這兩個檔案將構成 MTA 配置的唯一重要部分。
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 運作。
還可以設定 MAX_CONNS、MAX_PROCS、MAX_LIFE_CONNS 和 MAX_LIFE_TIME 的一般派送程式選項,但設定必須符合硬體要求。
PORT_ACCESS 對映很重要。後端伺服器的 LMTP 實作將用做 Sun Java System Messaging Server 轉送器和後端儲存之間的專用協定。必須使用 PORT_ACCESS 對映以確保僅此類轉送器可以連線至這些服務。您的對映檔案應類似於:
PORT_ACCESS TCP|*|225|1.2.3.4|* $Y TCP|*|226|1.2.3.4|* $Y TCP|*|225|1.2.3.5|* $Y TCP|*|226|1.2.3.5|* $Y TCP|*|*|*|* $N500$ Do$ not$ connect$ to$ this$ machine |
應使用網路上連線至後端儲存的轉送器 IP 位址替代此處 PORT_ACCESS 對映表中指定的範例 IP 位址。
必須有一個 imta.cnf 檔案,但它僅用於使配置完整。最小的 imta.cnf 檔案應包含以下通道定義:
! tcp_lmtpss (LMTP server - store) tcp_lmtpss lmtp tcp_lmtpss-daemon ! ! tcp_lmtpsn (LMTP server - native) tcp_lmtpsn lmtp tcp_lmtpsn-daemon
請注意,依預設,LMTP 通道定義已被註釋。如果您要 LMTP 運作,必須取消註釋。
在某些情況下,您可能希望後端儲存具有 MTA 的完整功能,但仍具有使用 LMTP 的載入保存功能。例如,您可能需要後端儲存上的程式遞送。這種情況下,應按以上使用 LMTP 配置內送 MTA 轉送中的說明配置轉送器。
從後端儲存郵件傳送系統的配置到使用 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 僅需要後端儲存一樣。