[Mailman-Users] no mail delivery to site list

Larry Kuenning larry at qhpress.org
Thu May 9 02:53:29 CEST 2013


On 5/8/2013 7:06 PM, Mark Sapiro wrote:

> My best SWAG (sophisticated wild-ass guess) is you have Postfix/Mailman
> integration and the necessary aliases and virtual mappings were
> generated for each list as you created it, but since the 'mailman' list
> pre-existed, it doesn't have them.

Sounds plausible.  Unfortunately I don't know enough about either 
Postfix or Mailman yet to have a clear idea how to explore the way they 
might be integrated on this system.

> If this is the case, i.e. if you look at Mailman's data/aliases (and
> data/virtual-mailman if there is one) files and see entries for all but
> the mailman list, running Mailmamn's bin/genaliases should fix it.

By "data/" I suppose you mean (on my system) /var/lib/mailman/data/.
/var/lib/mailman/ contains four subdirectories: archives, data, lists, 
and spam.  But in this data directory there's nothing but some 
heldmsg-[listname]-[n].pck files and a symbolic link to 
/etc/mailman/sitelist.cfg.  Nothing called aliases or virtual-mailman.

sitelist.cfg sounds like it might be relevant, but grepping it for blank 
lines not beginning with # I don't see any plausible leads, just a bunch 
of list management options like "advertised = 0".

> If the issue is something else, we'd need to start by seeing the output
> of 'postconf -n' and the contents of mm_cfg.py.

OK, here they are:

-----<begin output of postconf -n>----
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, hash:/var/spool/postfix/plesk/aliases
allow_mail_to_commands = alias, forward
allow_mail_to_files = alias, forward
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
disable_vrfy_command = yes
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 10240000
mydestination = localhost.$mydomain, localhost, localhost.localdomain
myhostname = 0373951.netsolvps.com
mynetworks = 127.0.0.0/8 [::1]/128 207.204.52.48/32
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_send_xforward_command = yes
smtp_tls_security_level = may
smtp_use_tls = no
smtpd_authorized_xforward_hosts = 127.0.0.0/8 [::1]/128
smtpd_client_restrictions =
smtpd_proxy_timeout = 3600s
smtpd_recipient_restrictions = permit_mynetworks, check_client_access 
pcre:/var/spool/postfix/plesk/no_relay.re, permit_sasl_authenticated, 
reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sender_restrictions = check_sender_access 
hash:/var/spool/postfix/plesk/blacklists, permit_sasl_authenticated, 
check_client_access pcre:/var/spool/postfix/plesk/non_auth.re
smtpd_timeout = 3600s
smtpd_tls_cert_file = /etc/postfix/postfix_default.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_security_level = may
smtpd_use_tls = yes
transport_maps = hash:/var/spool/postfix/plesk/transport
unknown_local_recipient_reject_code = 550
virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
virtual_gid_maps = static:31
virtual_mailbox_base = /var/qmail/mailnames
virtual_mailbox_domains = $virtual_mailbox_maps, 
hash:/var/spool/postfix/plesk/virtual_domains
virtual_mailbox_maps = hash:/var/spool/postfix/plesk/vmailbox
virtual_transport = plesk_virtual
virtual_uid_maps = static:110
-----<end output of postconf -n>-----

So much for postconf -n, which I guess tells us where to look for the 
relevant aliases.  Unfortunately I don't know enough about Postfix yet 
to be familiar with digging through these compiled database files and 
changing their values.

Now here's mm_cfg.py, which seems to contain a lot of commentary by at 
least two different authors (the second one says he's about to "override 
shipped defaults"), with one line at the very end that's really specific 
to my setup.  (Some of the lines here may be wrapped sooner than they 
should be, unless that's just the way Thunderbird displays them to me.)

-----<begin mm_cfg.py>-----
# -*- python -*-

# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software 
Foundation, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

"""This module contains your site-specific settings.

 From a brand new distribution it should be copied to mm_cfg.py.  If you
already have an mm_cfg.py, be careful to add in only the new settings you
want.  Mailman's installation procedure will never overwrite your mm_cfg.py
file.

The complete set of distributed defaults, with documentation, are in the 
file
Defaults.py.  In mm_cfg.py, override only those you want to change, 
after the

   from Defaults import *

line (see below).

Note that these are just default settings; many can be overridden via the
administrator and user interfaces on a per-list or per-user basis.

"""

###############################################
# Here's where we get the distributed defaults.

from Defaults import *
import pwd, grp

##################################################
# Put YOUR site-specific settings below this line.

##############################################################
#    Here's where we override shipped defaults with settings #
#    suitable for the RPM package.                           #
MAILMAN_UID = pwd.getpwnam('mailman')[2]
MAILMAN_GID = grp.getgrnam('mailman')[2]

##############################################################
#    Set URL and email domain names                          #
#
# Mailman needs to know about (at least) two fully-qualified domain
# names (fqdn)
#
# 1) the hostname used in your urls (DEFAULT_URL_HOST)
# 2) the hostname used in email addresses for your domain 
(DEFAULT_EMAIL_HOST)
#
# For example, if people visit your Mailman system with
# "http://www.dom.ain/mailman" then your url fqdn is "www.dom.ain",
# and if people send mail to your system via "yourlist at dom.ain" then
# your email fqdn is "dom.ain".  DEFAULT_URL_HOST controls the former,
# and DEFAULT_EMAIL_HOST controls the latter.  Mailman also needs to
# know how to map from one to the other (this is especially important
# if you're running with virtual domains).  You use
# "add_virtualhost(urlfqdn, emailfqdn)" to add new mappings.

# Default to using the FQDN of machine mailman is running on.
# If this is not correct for your installation delete the following 5
# lines that acquire the FQDN and manually edit the hosts instead.

from socket import *
try:
     fqdn = getfqdn()
except:
     fqdn = 'mm_cfg_has_unknown_host_domains'

DEFAULT_URL_HOST   = fqdn
DEFAULT_EMAIL_HOST = fqdn

# Because we've overriden the virtual hosts above add_virtualhost
# MUST be called after they have been defined.

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)


##############################################################
# Put YOUR site-specific configuration below, in mm_cfg.py . #
# See Defaults.py for explanations of the values.            #

# Note - if you're looking for something that is imported from mm_cfg, 
but you
# didn't find it above, it's probably in Defaults.py.
add_virtualhost('lists.qhpress.org', 'qhpress.org')
-----<end mm_cfg.py>-----

(This is me again.)  That last line was different until I changed it 
just now; it was:
	add_virtualhost('lists.qhpress.org')
which looks to me like it might have been the problem.

But maybe it wasn't.  After changing it I've tried posting to the site 
list again, with no luck.  Repeated this after reloading Mailman, and 
yet again after stopping and restarting Mailman -- still no luck.  (At 
least I didn't break the other lists in the process!)  Does this file 
have to be compiled before it works?  I see a .pyc and a .pyo next to it 
in the ~mailman/Mailman directory.  I don't know anything yet about 
compiling Python files.

If I had landed in this system after careful planning, probably I would 
have learned more about Postfix and Mailman before starting to use it. 
Unfortunately there was a disaster on my previous host which caused a 
near-total e-mail delivery failure for about a week, and this prompted 
me to jump into a new hosting solution as fast as I could.  Hence this 
help-what-do-I-do-now approach to learning how to use it.

Thanks for taking a look at this stuff!

-- 
Larry Kuenning
larry at qhpress.org


More information about the Mailman-Users mailing list