Mailman is distributed with a few formats and regexps for generating and recognizing VERP like envelope senders. None of these VERP like options are enabled by default, but if you wish to enable them, there are a few considerations.
For example, if you enable any of the VERP delivery options, messages from Mailman's LISTNAME@example.com will be sent to user@domain.invalid with the envelope from LISTNAME-bounces+user=domain.invalid@example.com. Should this message bounce, the bounce will be returned to LISTNAME-bounces+user=domain.invalid@example.com, and it is up to Mailman's incoming MTA to deliver this as if the local address were simply LISTNAME-bounces. With Postfix for example, you can set "recipient_delimiter = +" and it will do the right thing.
However, with some MTAs the delimiter is defined to be - rather than + and can't be changed. In other cases, sites may have been using - as a delimiter for a long time and a change would be disruptive. It is possible to use Mailman's VERP like options with an MTA that uses a - delimiter. Here's how.
If you want to set VERP_PASSWORD_REMINDERS or VERP_PERSONALIZED_DELIVERIES to Yes or set VERP_DELIVERY_INTERVAL to a non-zero value in mm_cfg.py, then also set
VERP_FORMAT = '%(bounces)s-%(mailbox)s=%(host)s' VERP_REGEXP = r'^(?P<bounces>.*?-bounces)-(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$'
in mm_cfg.py. If you want to set VERP_PROBES to Yes in mm_cfg.py, then also set
VERP_PROBE_FORMAT = '%(bounces)s-%(token)s' VERP_PROBE_REGEXP = r'^(?P<bounces>.*?-bounces)-(?P<token>[^@]+)@.*$'
in mm_cfg.py. If you want to set VERP_CONFIRMATIONS to Yes in mm_cfg.py, then also set
VERP_CONFIRM_FORMAT = '%(addr)s-%(cookie)s' VERP_CONFIRM_REGEXP = r'^(.*<)?(?P<addr>.*?-confirm)-(?P<cookie>[^@]+)@.*$'
in mm_cfg.py.