Mailman should work pretty much out of the box with a standard Postfix installation. It has been tested with various Postfix versions up to and including Postfix 2.1.5.
By default, Postfix treats -owner
and -request
addresses
specially. Since you want Postfix to deliver such messages to Mailman, you
should turn off this option by adding this to your main.cf file:
owner_request_special = no
In order to support Mailman's optional VERP delivery, you will want to disable
luser_relay
(the default) and you will want to set
recipient_delimiter
for extended address semantics. You should comment
out any luser_relay
value in your main.cf and just go with the
defaults. Also, add this to your main.cf file:
recipient_delimiter = +
Using "+" as the delimiter works well with the default values for VERP_FORMAT and VERP_REGEXP in Defaults.py.
When attempting to deliver a message to a non-existent local address, Postfix may return a 450 error code. Since this is a transient error code, Mailman will continue to attempt to deliver the message for DELIVERY_RETRY_PERIOD - 5 days by default. You might want to set Postfix up so that it returns permanent error codes for non-existent local users by adding the following to your main.cf file:
unknown_local_recipient_reject_code = 550
Finally, if you are using Postfix-style virtual domains, read the section on virtual domain support below.