David Newman wrote:
(Apologies for re-raising a topic I asked about here a couple of years ago. The instructions on Sourceforge have changed a bit since then.)
New server runs OpenBSD 4.7, postfix 2.65, mailman 2.1.14, and virtual domains. Mail sent to/from virtual domains works fine.
Different story with Mailman. Although postfix says a message addressed to a list is "sent" to all addresses, subscribers from virtual domains on this server do not receive the message. Subscribers on other domains not on this server do receive the message. There's no indication of trouble in the Mailman logs or in maillog.
What exactly does the Postfix log (maillog) say about the delivery to one of these addresses?
I've followed the setup instructions here, doing section 6.1.2 before 6.1.1 (given the link about doing virtual stuff first):
http://mailman.sourceforge.net/mailman-install/postfix-virtual.html http://mailman.sourceforge.net/mailman-install/postfix-integration.html
This normally only affects delivery TO a list in a virtual domain. If done properly, it should not affect delivery to any non-list address in the virtual domains.
I've pasted the config files below.
Thanks in advance for clues on getting Mailman to deliver to virtual addresses on this server.
This is almost certainly a Postfix issue rather than a Mailman issue. If there is nothing in Mailman's smtp-failure log, Mailman has delivered the message whith the local virtual recipients included to Postfix and Postfix has accepted it.
See additional comments inline below.
server hostname: mail.domain1.tld
virtual domains: domain1.tld # (not its real name!) domain2.tld domain3.tld
from /etc/postfix/main.cf:
..
myhostname = mail.domain1.tld mydomain = domain1.tld mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
..
alias_maps = hash:/etc/mail/aliases, hash:/usr/local/mailman/data/aliases
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/forwardings.cf proxy:mysql:/etc/postfix/sql/email2email.cf hash:/usr/local/mailman/data/domain1-tld hash:/usr/local/mailman/data/virtual-mailman
Full output from "postconf -n" might help.
from /usr/local/mailman/Mailman/mm_cfg.py:
MTA = 'Postfix' MAILMAN_SITE_LIST = 'mailman' DEFAULT_EMAIL_HOST = 'domain1.tld' DEFAULT_URL_HOST = 'mail.domain1.tld' DEFAULT_URL_PATTERN = 'https://%s/mailman/' PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s' IMAGE_LOGOS = '/icons/' POSTFIX_ALIAS_CMD = '/usr/local/sbin/postalias' POSTFIX_MAP_CMD = '/usr/local/sbin/postmap' POSTFIX_STYLE_VIRTUAL_DOMAINS = [ 'domain2.tld', 'domain3.tld' ] # Clear the Defaults.py VIRTUAL_HOSTS entry VIRTUAL_HOSTS.clear() add_virtualhost('DEFAULT_EMAIL_HOST', 'DEFAULT_URL_HOST')
The above is backwards. It should be
add_virtualhost('DEFAULT_URL_HOST', 'DEFAULT_EMAIL_HOST')
add_virtualhost('domain2.tld', 'domain2.tld') add_virtualhost('domain3.tld', 'domain3.tld')
However, nothing here affects delivery of mail FROM mailman.
/usr/local/mailman/data/aliases
# The ultimate loop stopper address mailman-loop: /usr/local/mailman/data/owner-bounces.mbox
# STANZA START: mailman # CREATED: Sat Oct 30 11:23:37 2010 mailman: "|/usr/local/mailman/mail/mailman post mailman" mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/local/mailman/mail/mailman join mailman" mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman" mailman-request: "|/usr/local/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman" # STANZA END: mailman
# STANZA START: s # CREATED: Sat Oct 30 11:35:12 2010 s: "|/usr/local/mailman/mail/mailman post s" s-admin: "|/usr/local/mailman/mail/mailman admin s" s-bounces: "|/usr/local/mailman/mail/mailman bounces s" s-confirm: "|/usr/local/mailman/mail/mailman confirm s" s-join: "|/usr/local/mailman/mail/mailman join s" s-leave: "|/usr/local/mailman/mail/mailman leave s" s-owner: "|/usr/local/mailman/mail/mailman owner s" s-request: "|/usr/local/mailman/mail/mailman request s" s-subscribe: "|/usr/local/mailman/mail/mailman subscribe s" s-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe s" # STANZA END: s
Likewise, the aliases above only affect delivery TO the mailman and s lists.
/usr/local/etc/mailman/data/domain1-tld:
domain1.tld IGNORE @domain1.tld @mail.domain1.tld
This file and its reference in virtual_alias_maps is conflicting as this says domain1.tld is a virtual alias domain and its presence in mydestination says it's not. Also, this is obsolete in Postfix. The current method of specifying to postfix that a domain is a virtual alias domain is to list it in virtual_alias_domains in main.cf.
/usr/local/mailman/data/virtual-mailman:
# LOOP ADDRESSES START mailman-loop@domain1.tld mailman-loop # LOOP ADDRESSES END
# STANZA START: s # CREATED: Sat Oct 30 11:35:12 2010 s@domain1.tld s s-admin@domain1.tld s-admin s-bounces@domain1.tld s-bounces s-confirm@domain1.tld s-confirm s-join@domain1.tld s-join s-leave@domain1.tld s-leave s-owner@domain1.tld s-owner s-request@domain1.tld s-request s-subscribe@domain1.tld s-subscribe s-unsubscribe@domain1.tld s-unsubscribe # STANZA END: s
And this virtual mapping only affects delivery to the s@domain1.tld list and it's associated admin addresses, but since domain1.tld is not in POSTFIX_STYLE_VIRTUAL_DOMAINS (which is correct because it is in main.cf mydestination which makes it a postfix local domain), why is this list in virtual-mailman at all.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan