[Mailman-Users] Mailman and virtual mailhosting (postfix)

Mark Sapiro mark at msapiro.net
Thu Jul 24 16:57:02 CEST 2008


Jens Meyer wrote:
> Hello!
> 
> Thank you for your patient clarifications!
> 
> Yes, I understand: Internally Mailman uses only the listname. And the
> domainname/hostname.
> 
> Perhaps another explanation is helpful (from postfix-side):
> 
> To get Mailman working the following configuration is needed actually:
> myhostname = mail.myserver.de
> mydomain   = myserver.de
> mydestination       = $myhostname, $mydomain, localhost
> 
> But I want/need to change this to (working before without problems):
> myhostname = mail.myserver.de
> mydomain   = myserver.de
> mydestination = $myhostname, localhost
> 
> because $mydomain is used by virtual mailsystem (postfix-warning: "Jul 
> 24 10:32:19 lovejoy postfix/trivial-rewrite[31288]: warning: do not list 
> domain myserver.de in BOTH mydestination and virtual_mailbox_domains").
> 
> How can I avoid this warning (without removal of the other 
> email-handling for myserver.de)?


I'm not certain how to do this because I don't know enough about Postfix.

The normal way to do this with Mailman-Postfix integration is to put the 
following in mm_cfg.py.

DEFAULT_EMAIL_HOST = 'myserver.de'
DEFAULT_URL_HOST = 'lists.myserver.de'
MTA = 'Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['myserver.de']
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

Then run fix_url to update the list(s). E.g.

bin/withlist -l -r fix_url listname

or

bin/withlist -l -a -r fix_url

for all lists. Or, if DEFAULT_URL_HOST isn't changed from when the lists 
were created, you can just change the host_name on the list's General 
Options page to myserver.de.

Then run Mailman's bin/genaliases.

This will create/update two files and their corresponding .db files in 
Mailman's data/ directory.

aliases(.db) will contain the list aliases of the form

list:        "|/path/to/mailman/mail/mailman post list"
list-admin:  "|/path/to/mailman/mail/mailman admin list"
...

with 10 aliases per list.

virtual-mailman(.db) will contain the virtual domain maps of the form

list at myserver.de         list
list-admin at myserver.de   list-admin
...

with 10 mappings per list.

Then in Postfix's main.cf you would do the following:

add hash:/path/to/mailman/data/aliases to the alias_maps list

add hash:/path/to/mailman/data/virtual-mailman to the virtual_alias_maps 
list

add myserver.de to the virtual_alias_domains list.

Then, for example, mail to list at myserver.de will be mapped via 
virtual_alias_maps to the local name 'lists' which is aliased to the 
pipe to Mailman.

The only problem with this is you already have myserver.de as a 
virtual_mailbox_domain. This complicates things bcause 
virtual_mailbox_maps maps to mailbox files or maildir directories, not 
to local names that can be aliased.

You might be able to make this work with Mailman's maildir delivery 
option, but you would have to modify Mailman/MTA/Postfix.py to generate 
the appropriate maps to use with Postfix.

There may be other ways to make this work in Postfix, but these are 
Postfix questions that I am unable to answer.

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan


More information about the Mailman-Users mailing list