On 10/31/10 10:22 PM, Mark Sapiro wrote:
> On 10/31/10 4:56 PM, David Newman wrote:
>> On 10/31/10 9:09 AM, Mark Sapiro wrote:
>>>
>>> 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. 
> 
> 
> And what is the rest of the information in those log messages, i.e. the
> remainder of the sent= and the relay= for example. Please post the
> entire log line.

Here's a log snapshot of a message sent to [email protected], a Mailman list
with subscribers '[email protected]' and '[email protected]'.

This is after removing 'hash:/usr/local/mailman/data/domain1-tld' from
virtual_alias_maps as you suggested and reloading Mailman and postfix.

I'm embedded one comment and one question:

Nov  1 11:51:29 mail postfix/postfix-script[5384]: refreshing the
Postfix mail system
Nov  1 11:51:29 mail postfix/master[19348]: reload -- version 2.6.5,
configuration /etc/postfix
Nov  1 11:51:59 mail postfix/smtpd[32434]: connect from
mail3.networktest.com[69.55.234.104]
Nov  1 11:51:59 mail postfix/trivial-rewrite[29411]: warning: do not
list domain domain1.tld in BOTH mydestination and virtual_mailbox_domains

This is a possible clue. I think postfix is set up so that domain1.tld
*is* a virtual domain. The server -- Mailserver, an email server
appliance from Allard Software -- stores domain info in a SQL database
and postfix calls that database here:

virtual_mailbox_domains =   proxy:mysql:/etc/postfix/sql/domains.cf

Anyway, carrying on:

Nov  1 11:51:59 mail postfix/smtpd[32434]: A91E1130CB:
client=mail3.networktest.com[69.55.234.104]
Nov  1 11:51:59 mail postfix/cleanup[25359]: A91E1130CB:
message-id=<[email protected]>
Nov  1 11:51:59 mail postfix/smtpd[32434]: disconnect from
mail3.networktest.com[69.55.234.104]
Nov  1 11:51:59 mail postfix/qmgr[20853]: A91E1130CB:
from=<[email protected]>, size=1495, nrcpt=1 (queue active)
Nov  1 11:51:59 mail spamd[10619]: spamd: connection from localhost
[127.0.0.1] at port 45013
Nov  1 11:51:59 mail spamd[10619]: spamd: processing message
<[email protected]> for [email protected]:62
Nov  1 11:52:00 mail spamd[10619]: spamd: clean message (-0.0/5.0) for
[email protected]:62 in 1.1 seconds, 1467 bytes.
Nov  1 11:52:00 mail spamd[10619]: spamd: result: . 0 -
T_RP_MATCHES_RCVD
scantime=1.1,size=1467,[email protected],uid=62,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=45013,mid=<[email protected]>,autolearn=ham

Nov  1 11:52:01 mail postfix/pickup[1233]: 03422130CD: uid=506
from=<[email protected]>
Nov  1 11:52:01 mail postfix/pipe[16800]: A91E1130CB:
to=<[email protected]>, orig_to=<[email protected]>, relay=spamassassin,
delay=1.6, delays=0.33/0.02/0/1.2, dsn=2.0.0, status=sent (delivered via
spamassassin service)
Nov  1 11:52:01 mail postfix/qmgr[20853]: A91E1130CB: removed
Nov  1 11:52:01 mail postfix/cleanup[25359]: 03422130CD:
message-id=<[email protected]>
Nov  1 11:52:01 mail postfix/qmgr[20853]: 03422130CD:
from=<[email protected]>, size=1762, nrcpt=1 (queue active)
Nov  1 11:52:01 mail spamd[18056]: prefork: child states: II
Nov  1 11:52:01 mail postfix/local[28131]: 03422130CD:
to=<[email protected]>, relay=local, delay=0.32,
delays=0.03/0.02/0/0.26, dsn=2.0.0, status=sent (delivered to command:
/usr/local/mailman/mail/mailman post s)
Nov  1 11:52:01 mail postfix/qmgr[20853]: 03422130CD: removed
Nov  1 11:52:02 mail postfix/smtpd[32434]: connect from localhost[127.0.0.1]
Nov  1 11:52:02 mail postfix/trivial-rewrite[29411]: warning: do not
list domain domain1.tld in BOTH mydestination and virtual_mailbox_domains
Nov  1 11:52:02 mail postfix/smtpd[32434]: 80A72130CB:
client=localhost[127.0.0.1]
Nov  1 11:52:02 mail postfix/trivial-rewrite[29411]: warning: do not
list domain domain1.tld in BOTH mydestination and virtual_mailbox_domains
Nov  1 11:52:02 mail postfix/cleanup[25359]: 80A72130CB:
message-id=<[email protected]>
Nov  1 11:52:02 mail postfix/smtpd[32434]: disconnect from
localhost[127.0.0.1]
Nov  1 11:52:02 mail postfix/qmgr[20853]: 80A72130CB:
from=<[email protected]>, size=2697, nrcpt=2 (queue active)
Nov  1 11:52:02 mail spamd[10619]: spamd: connection from localhost
[127.0.0.1] at port 5435
Nov  1 11:52:02 mail spamd[10619]: spamd: processing message
<[email protected]> for [email protected]:62
Nov  1 11:52:07 mail spamd[10619]: spamd: clean message (0.0/5.0) for
[email protected]:62 in 4.8 seconds, 2638 bytes.
Nov  1 11:52:07 mail spamd[10619]: spamd: result: . 0 -
scantime=4.8,size=2638,[email protected],uid=62,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=5435,mid=<[email protected]>,autolearn=ham

Nov  1 11:52:07 mail postfix/pickup[1233]: 7027A130CD: uid=506
from=<[email protected]>
Nov  1 11:52:07 mail postfix/cleanup[25359]: 7027A130CD:
message-id=<[email protected]>
Nov  1 11:52:07 mail postfix/pipe[16800]: 80A72130CB:
to=<[email protected]>, relay=spamassassin, delay=4.9,
delays=0.04/0/0/4.9, dsn=2.0.0, status=sent (delivered via spamassassin
service)
Nov  1 11:52:07 mail postfix/pipe[16800]: 80A72130CB:
to=<[email protected]>, relay=spamassassin, delay=4.9,
delays=0.04/0/0/4.9, dsn=2.0.0, status=sent (delivered via spamassassin
service)


I don't understand this entry. Since '[email protected]' never received the
message, and since postfix says it was delivered OK, and since there's
no indication of trouble in the Mailman logs, what happened to the message?


Nov  1 11:52:07 mail postfix/qmgr[20853]: 80A72130CB: removed
Nov  1 11:52:07 mail postfix/qmgr[20853]: 7027A130CD:
from=<[email protected]>, size=2759, nrcpt=1 (queue active)
Nov  1 11:52:07 mail spamd[18056]: prefork: child states: II
Nov  1 11:52:11 mail postfix/smtp[7413]: 7027A130CD:
to=<[email protected]>,
relay=mail3.networktest.com[69.55.234.104]:25, delay=3.6,
delays=0.03/0.04/0.39/3.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued
as EC0D3256A73)
Nov  1 11:52:11 mail postfix/qmgr[20853]: 7027A130CD: removed



> 
> 
>>>
>>>
>>>> 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.)
> 
> 
> You were clear. I was only trying to say that those Postfix
> configurations only affect mail TO mailman. They don't affect the issue
> you are asking about.
> 
> 
>>>> 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 =
> 
> 
> Here you want
> 
> virtual_alias_domains = domain2.tld, domain3.tld
> 
> 
>> virtual_alias_maps = proxy:mysql:/etc/postfix/sql/forwardings.cf
>> proxy:mysql:/etc/postfix/sql/email2email.cf
>> hash:/usr/local/mailman/data/domain1.tld
> 
> and remove the above which may possibly fix your problem.
> 
> 
>> 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?
> 
> 
> No. I'm saying domain1.tld is not currently treated as a virtual domain
> in Postfix except for the above file and its reference in
> virtual_alias_maps. I think both the ile and the reference should be
> removed.
> 
> 
>> 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
> 
> 
> I think you should leave the above as is.
> 
> 
>> 3. in main.cf, delete '/usr/local/etc/mailman/data/domain1-tld' from
>> virtual_alias_maps
> 
> 
> As I said above, I think you should do this.
> 
> 
>>>
>>>
>>>> -----
>>>>
>>>> /usr/local/mailman/data/virtual-mailman:
>>>>
>>>> # LOOP ADDRESSES START
>>>> [email protected]        mailman-loop
>>>> # LOOP ADDRESSES END
>>>>
>>>> # STANZA START: s
>>>> # CREATED: Sat Oct 30 11:35:12 2010
>>>> [email protected]              s
>>>> [email protected]        s-admin
>>>> [email protected]      s-bounces
>>>> [email protected]      s-confirm
>>>> [email protected]         s-join
>>>> [email protected]        s-leave
>>>> [email protected]        s-owner
>>>> [email protected]      s-request
>>>> [email protected]    s-subscribe
>>>> [email protected]  s-unsubscribe
>>>> # STANZA END: s
>>>
>>>
>>> And this virtual mapping only affects delivery to the [email protected] 
>>> 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.
> 
> 
> No, I'm saying it's not a virtual domain and should not be treated as such.
> 
> I'm also asking how the above virtual-mailman got created with entries
> for [email protected] when domain1.tld is not in
> POSTFIX_STYLE_VIRTUAL_DOMAINS in the first place?
> 
> Also, it appears you are taking
> <http://mailman.sourceforge.net/mailman-install/postfix-virtual.html>
> much too literally. That section describes a complicated situation which
> is not typically encountered in practice. And yes, it should probably be
> heavily revised.

Clarity is desirable and too rare in technical writing. I'd be glad to
propose revisions to sections 6.1.1 and 6.1.2 of the docs once I
understand how this should work.

Thanks again for your guidance in troubleshooting.

dn


> 
------------------------------------------------------
Mailman-Users mailing list [email protected]
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

Reply via email to