To configure inbound MTA relays to use LMTP, do the following:
Modify your imta.cnf file and change the LMTP rewrite rules to read:
! 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 ! |
Set the mailbox DELIVERY_OPTIONS to:
#*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon |
Set the native DELIVERY_OPTIONS clause to:
#*native=@$X.LMTPN:$M+$2S@native-daemon |
Add the channel keywords multigate connectcanonical to each of the tcp_lmtp* channel blocks.
Add the following channel keywords to the tcp_lmtpcs channel:
fileinto @$4O:$U+$S@$D |
Note that the 'O' in the keyword above is a capital letter O, not a zero.
The incoming MTA relay configuration settings should look like this:
The option.dat entry for DELIVERY_OPTIONS should look like this:
!------------------------------------------ ! 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 ! |
After your changes the modified imta.cnf rewrite rules should look like this:
! 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 ! |
The changed channel blocks should look like this:
! ! 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 |