Sendmail & Mailman V3
I would like to use Mailman V3 with Sendmail. http://mailman.readthedocs.io/en/release-3.0/src/mailman/docs/MTA.html indicates that no-one has figured out how to make this happen.
I've looked into the Sendmail documentation (I'm not a Sendmail configuration expert), and I don't see how to make this work. I pinged the sendmail-users list, but no-one bit.
The issue is that Mailman V3 wants to deliver mail via LMTP - which indeed, Sendmail supports. However, Mailman wants mail destined for the list aliases to go to it via LMTP, while all other mail goes to the 'normal' Local Delivery Agent.
As far as I can tell, Sendmail only supports one LDA. So if I hook Mailman up as that LDA (specifying LMTP), that's the end of non-list mail delivery. To have multiple sendmail instances, one needs multiple static IP addresses - which is not trivial (ISPs charge for them; then one has to setup forward & reverse DNS....)
Which leads me to this observation: Mailman's LMTP server could solve this problem (and simplify the configuration for the other mail servers) by simply passing any addresses that it doesn't recognize to another process, and returning that processes' responses to the server. That process would be the 'normal' LDA.
The scheme would look like this: Configure: non-list-lda (e.g. /usr/bin/procmail) non-list-lda address (e.g. unix:/var/run/lmtp_socket or tcp:lmtp.example.net:888) non-list-lda-flags (e.g. -z ) logic: scan message for _TO fields (to,cc,bcc,...) process list addresses, remove from message envelope if _TO addresses remain in the envelope (or no list addresses found) && non-list-lda configured: pass message to non-list-lda's file descriptor return response codes [This may require interpolating the list address responses since LMTP wants response codes in recipient order.]
The restriction (at least for this simple implementation) is that the LDA for the non-list addresses must speak LMTP. But there are several to choose from.
For people using the other mail servers, this should be transparent. Or they can be setup the same way - which means they don't need the current maps between mailbox name and LDA.
One could argue that the LDA should be doing the relay for Mailman - but there are several of them (procmail, mail.local,dovecot's, ...) & Mailman is causing the issue...
Another approach would be to implement a filter process that implemented the mapping to the correct LDA. But this would necessarily be less efficient: it would be a separate process, and it would need to know which mailboxes map to each LDA. Mailman already knows this...
P.S. http://mailman.readthedocs.io/en/release-3.0/src/mailman/runners/docs/lmtp.html title is LTMP Server; should be LMTP Server :-)