[Mailman-Users] Troubleshooting: no mail goes out to lists - common things to check

Jon Carnes jonc at nc.rr.com
Sat Nov 9 00:22:19 CET 2002


Here are some common things to check when no mail is going out from your
lists.

======
I'm going to assume Sendmail as the MTA (its still the most commonly
found - though postfix is gaining ground):

0) Check_perms. In all cases you should start by checking the
   permissions on the files that were setup:

     ~mailman/bin/check_perms

1) Cron. Make sure that the cron daemon is running

     ps -aux |grep cron |grep -v grep

   This will print out the process information about the cron
   daemon. If it returns a blank line, then cron is NOT running.

2) Aliases. To create a mailman list you ran "newlist" and it
   printed out four lines that you needed to copy to the 
   /etc/aliases file (or wherever your MTA goes to find its
   aliases). Check that the aliases are in /etc/aliases:

     grep wrapper /etc/aliases

   Even if the aliases are there, you may still need to reset
   the aliases hash table so that it includes this new alias
   information:

     newaliases 

    Here is a typical alias listing for a group called "sys":

     ## system mailing list
     sys:           "|/home/mailman/mail/wrapper post sys"
     sys-admin:     "|/home/mailman/mail/wrapper mailowner sys"
     sys-request:   "|/home/mailman/mail/wrapper mailcmd sys"
     sys-owner:      sys-admin

3) Smrsh. Check to see if your MTA uses smrsh.  Red Hat as well
   as a few other distributions automatically setup Sendmail to
   use smrsh.  Smrsh stops Sendmail from running a script or
   other program that is included in an alias. Mailman uses a
   program called "wrapper" to run all of its aliases (see the
   alias examples above):

     grep "smrsh" sendmal.cf

   If this comes up blank then Sendmail does not use smrsh; 
   if not, then your server is probably running smrsh and you
   need to make sure that smrsh is setup to allow Mailman's
   wrapper program to run. Locate the smrsh directory and do
   an ls -l of that directory.  On Red Hat:

     ls -l /etc/smrsh

   and the output should be similar to:

     wrapper -> /home/mailman/mail/wrapper

4) Interface. Some distributions in a noble "attempt" to limit
   the number of open relays on the internet, default Sendmail
   so that it listens to a limited number of interfaces. The
   default interface that Mailman list's use is localhost 
   (127.0.0.1) - this is configurable in Mailman's mm_cfg.py 
   file. To check Sendmail's configuration file:

     grep "Port" sendmail.cf

   This will list out the DeamonPortOption and indicate the
   interfaces it listens on (0.0.0.0 would mean all interfaces).

   You can also check out which interfaces your MTA is listening
   on by using:

     netstat -na |grep ":25 "

5) Qrunner. If you are running Mailman 3.0x then qrunner is
   run every minute via a cron job (that is why cron *must* be
   running for Mailman to work). Try running the program by
   hand. The exact syntax can be found in Mailman's cron jobs:

     su mailman
     crontab -l

   Here is an example of running qrunner by hand:

     su mailman
     /usr/bin/python -S /home/mailman/cron/qrunner

   If this generates any errors then send those to the list
   for diagnosis - or look at the last few lines of errors and
   search the list for key words from the error messages.

6) Locks. A errant lock file can stop a list from processing as
   Mailman waits for the lock to be removed. Since your list is
   not sending, we shall assume that no lock files should be on
   the list and that it is safe to delete any we find.

     ls -l ~mailman/locks

   The output will be something like:

     qrunner.lock.moya.trilug.org.22845

   This indicates that process # 22845 created the lock. To look
   at this process and see what it is (if it still exists):

     ps aux |grep 22845 |grep -v grep

7) Logs. If you don't have any of the common problems above,
   then you should look for errors in your log files.

   First look for errors in your MTA log files. On Red Hat that
   would be in /var/log/maillog.
 
   Look in the log starting at the time you sent a test message.
   You should see your initial message come in and be passed
   onto to your Mailman list, afterwards you may see warnings
   or errors caused by Mailman trying to send out mail to the
   members of the list.

   Next look in Mailman's logs. The files are in ~mailman/logs/.
   There are several logs to look in for problems:
     error
     smtp-failure
     smtp
     vette
     config
     post

   Note: if you look in the qrunner log you will see several
   warnings about "Could not acquire qrunner lock", these are
   actually normal and are NOT a problem.

   Every line in the log files is dated so you should be able to
   isolate the place in the log files to start looking, based on
   when your problem started. 

8) Qfiles. You may have a malformed email (or one that is simply
   too big) clogging up the flow of mail to your lists. Mail
   that is queued up by Mailman is stored in the directory:
     ~mailman/qfiles

   Move any files out of the directory and into a temporary 
   directory, then send a new test message to your list. If that
   works, then you can move some of the old queued up files back
   and let those process.  If it stops working again then you
   have a bad message in that batch - delete them or copy them to
   a different temporary directory.

======

Please feel free to critic and expand on this.  I'm hoping that it
proves useful as a starting point for folks having mail-flow problems.

-- Jon Carnes




More information about the Mailman-Users mailing list