On 10/31/10 9:09 AM, Mark Sapiro wrote: > 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?
maillog says status is "sent" to all list subscribers. The test list, called "s", has one subscriber in domain1.tld on this server (who got the initial welcome to this list message from Mailman but not any messages) and one subscriber in another domain somewhere else (who gets all messages. Again, postfix tells the maillog that a message sent to the list address is "status=sent" to both subscribers. > > >> 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. Sorry if I was unclear. Mail delivery to and from non-list addresses in virtual domains on this server works fine. The only messages that are not being delivered are those to a subscriber in domain1.tld on this server. (I haven't yet tried subscribing anyone in domain2.tld or domain3.tld.) > > >> 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 Just to clarify: domain1.tld is not virtual, in the sense that the server's canonical hostname is mail.domain1.tld. However, addresses defined in this domain are virtual -- these users do not have local accounts on this server. Again, non-list mail to and from these users works as expected. >> >> ----- >> >>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. Here you go: alias_database = hash:/etc/mail/aliases alias_maps = hash:/etc/mail/aliases, hash:/usr/local/mailman/data/aliases command_directory = /usr/local/sbin config_directory = /etc/postfix daemon_directory = /usr/local/libexec/postfix header_checks = pcre:/etc/postfix/header_checks.pcre mail_owner = _postfix mailq_path = /usr/local/sbin/mailq manpage_directory = /usr/local/man message_size_limit = 27962027 milter_connect_macros = j {daemon_name} v _ milter_default_action = tempfail milter_header_checks = pcre:/etc/postfix/milter_header_checks mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = domain1.tld myhostname = mail.domain1.tld mynetworks = 127.0.0.0/8 newaliases_path = /usr/bin/newaliases proxy_read_maps = proxy:mysql:/etc/postfix/sql/routing.cf proxy:mysql:/etc/postfix/sql/domains.cf proxy:mysql:/etc/postfix/sql/mailboxes.cf proxy:mysql:/etc/postfix/sql/user.cf proxy:mysql:/etc/postfix/sql/group.cf proxy:mysql:/etc/postfix/sql/forwardings.cf proxy:mysql:/etc/postfix/sql/email2email.cf proxy:unix:passwd.byname unix:passwd.byname queue_directory = /var/spool/postfix readme_directory = /usr/local/share/doc/postfix/readme recipient_delimiter = + relay_domains = proxy:mysql:/etc/postfix/sql/routing.cf sample_directory = /etc/postfix sendmail_path = /usr/local/sbin/sendmail setgid_group = _postdrop smtp_tls_cert_file = /etc/ssl/server.crt smtp_tls_key_file = /etc/ssl/private/server.key smtp_tls_security_level = may smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_milters = unix:/tmp/clamav-milter.sock smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_rbl_client zen.spamhaus.org smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/server.crt smtpd_tls_key_file = /etc/ssl/private/server.key smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_use_tls = yes strict_rfc821_envelopes = yes transport_maps = proxy:mysql:/etc/postfix/sql/routing.cf unknown_local_recipient_reject_code = 550 virtual_alias_domains = 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 virtual_gid_maps = proxy:mysql:/etc/postfix/sql/group.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mailboxes.cf virtual_minimum_uid = 1000 virtual_transport = dovecot virtual_uid_maps = proxy:mysql:/etc/postfix/sql/user.cf > > >> ----- >> >>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. > OK > >> ----- >> >> /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. OK > > >> ----- >> >> /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. This came from section 6.1.2 of the Mailman docs on integration with postfix. This, along with the part at the top of section 6.1.1 saying to do this stuff first, is perhaps the most confusing part of the Mailman docs. If this method is obsolete in Postfix, it's time to revise these docs (and as a sometime tech writer I volunteer to help once I understand this). Just double-checking: I think you're saying to treat domain1.tld as a virtual alias domain. True? If so I think the changes to do this would be: 1. in main.cf, delete the myhostname and mydomain lines ((not sure these are strictly needed given that postfix gets these anyway from gethostbyname() )) 2. in main.cf, remove $mydomain from $mydestination 3. in main.cf, delete '/usr/local/etc/mailman/data/domain1-tld' from virtual_alias_maps > > >> ----- >> >> /usr/local/mailman/data/virtual-mailman: >> >> # LOOP ADDRESSES START >> mailman-l...@domain1.tld mailman-loop >> # LOOP ADDRESSES END >> >> # STANZA START: s >> # CREATED: Sat Oct 30 11:35:12 2010 >> s...@domain1.tld s >> s-ad...@domain1.tld s-admin >> s-boun...@domain1.tld s-bounces >> s-conf...@domain1.tld s-confirm >> s-j...@domain1.tld s-join >> s-le...@domain1.tld s-leave >> s-ow...@domain1.tld s-owner >> s-requ...@domain1.tld s-request >> s-subscr...@domain1.tld s-subscribe >> s-unsubscr...@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. Clearly I'm confused as to whether domain1.tld should or should not be defined as a virtual domain. The Mailman docs on postfix integration say no, but I think you're saying to treat it as a virtual domain. Thanks very much for any further clues. dn > >> ----- > ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://wiki.list.org/x/AgA3 Security Policy: http://wiki.list.org/x/QIA9 Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: http://mail.python.org/mailman/options/mailman-users/archive%40jab.org