[Mailman-Users] More mm-handler SOS

David Pruitt david at davidpruitt.com
Wed Dec 10 05:37:07 CET 2003

Hello everyone,

I sent an e-mail about my problem last night, and had a few responses, 
but I wanted to send another e-mail with some more information. Below 
are the steps I have used to get mm-handler installed. I believe I have 
followed the instructions, but I may have left something out or 
interpreted something incorrectly.

1. Copy mailman.mc, and make any changes you need at your site. You
    DEFINITELY need some changes. There are hostnames in there that you
    need to adjust, and chances are that you'll need to change some other
    parameters (like the host OS), too. [1]

I copied the mailman.mc file over my original .mc file in /etc/mail 
(after backing up the old). I changed the OS, and the paths to 
procmail. The mail definitions look like this:

###   New Mailer specifications  ###

## Special flags! See
##      http://www.sendmail.org/~ca/email/doc8.10/op-sh-5.html#sh-5.4
## Note especially the absence of the "m" and "n" flags. THIS IS
## IMPORTANT: mm-handler assumes this behavior to avoid having to know
## too much about address parsing and other RFC-2822 mail details.

Mmailman,       P=/etc/mail/mm-handler, F=rDFMhlqSu, U=mailman:mailnull,
                 S=EnvFromL, R=EnvToL/HdrToL,
                 A=mm-handler $h $u

I use FreeBSD, and mailnull is the group sendmail uses.

2. Install mm-handler. Because my server's sendmail-related files live
    in /etc/mail, I keep mm-handler there, too. YMMV.

Install? Well, I copied mm-handler to the same dir all my other mail 
files are located: /etc/mail.

3. Edit mm-handler, and make any changes you need at your site. You
    probably want to change $MMWRAPPER and $MMLISTDIR at line 14, and you
    *might* want to take a look at the helpful boilerplate text beginning
    at line 64. (This text is sent whenever someone tries to send mail to
    a nonexistent list address on your mail domain.)

I changed the following:

a] The path to perl.. to /usr/bin/perl (at the top)
b] The $MMWRAPPER path is where my mailman files are located on my 
webserver which is $MMWRAPPER = "/www/mailrings/mail/mailman"; and the 
next line to $MMLISTDIR = "/www/mailrings/lists"; I also changed the 
sendmail path to reflect my path, which is $SENDMAIL = 
"/usr/sbin/sendmail -oem -oi";

That's about all the changed I made to that file. I left the text in 
the mail alone for simplicity sake.

4. You should set up a virtusertable. (See mailman.mc for an
    explanation.) There's an example of a good, minimal virtusertable
    in this distribution. The virtusertable begins as a text file named
    "virtusertable", stored in the same directory as all the other
    Sendmail files, but it's converted to a map file for Sendmail's use.
    Install the virtusertable, and (re)make the map file. [2]

The virtusertable has only one entry for my mailman domain, which is:
@mailrings.com                          mailman-owner at mailrings.com

(My site is www.mailrings.com)

5. You absolutely must have a mailertable, or all of this goes nowhere.
    Like virtusertable, the mailertable is a map that begins as text and
    gets converted. It's named "mailertable", and it's probably pretty
    simple. Mine looks like this:

         listtest.uchicago.edu   mailman:listtest.uchicago.edu

    This says: assign all incoming mail (that was not intercepted by the
    virtusertable) and that is in the listtest.uchicago.edu domain to the
    "mailman" mailer, and tell the "mailman" mailer that the hostname
    we're using is "listtest.uchicago.edu". You can support multiple
    virtual hosts using mm-handler just by placing corresponding lines in

    Be sure to make this map, too!
My mailertable file is very simple:

mailrings.com           mailman:mailrings.com

As the directions say, I want mailman to handle ALL requests made to 

And yes, I 'made' the files to convert mc to cf, etc..

6. The mailer definition (see the end of mailman.mc, or your own .mc
    file) for mm-handler sets the user/group that mm-handler will run
    under. (I use mailman:other.) Be sure that mm-handler is executable
    by this user or group. You almost certainly need the user to be the
    same as the Mailman user, and this user is almost always called
    "mailman", so you probably shouldn't change the defaults.

Did this as you can see from my config file above. It's 

7. Generate your new sendmail.cf file. See the sendmail documentation if
    you're not familiar with this procedure. [1]

Did the make, which redid my sendmail.mc file, virtusertable, and 

8. Stop sendmail on your list server, if you haven't already. Install
    the new sendmail.cf file wherever your sendmail.cf file belongs.
    (This depends on how sendmail was compiled, but most systems support
    using /etc/sendmail.cf.)

I stopped sendmail as I always do by giving the command "make stop", in 
which it replies:
Stopping: sendmail sendmail-clientmqueue.

Then restarted, and it replies:
Starting: sendmail sendmail-clientmqueue.

All files are already at /etc/mail so there is no need to 'install new 
sendmail.cf file'.

9. Cross your fingers and restart sendmail.


A. Barry warns that Mailman now needs you to modify your
    Mailman/mm_cfg.py file, adding this line:

         MTA = None

    But this isn't in my latest installation, and I don't remember what
    it's for, so I'll leave this to Barry to clarify. :)

That's it! With any luck, you're fully functional.

This has been done as well. I do longer get an e-mail saying "now put 
these in your alias file".

All this looks okay? Well, when I send ANY mail to ANY address at 
mailrings.com. I get this:

Message from  yahoo.com.
Unable to deliver message to the following address(es).

<listtest at mailrings.com>: does not like recipient.
Remote host said: 554 5.3.5 buildaddr: unknown mailer mailman
Giving up on

--- Original message follows.

Then I get all the rest of the return information.

My /var/log/maillog barks with only the same type of message:

Dec  9 21:14:30 mybox sm-msp-queue[15359]: starting daemon (8.12.6): 
queueing at 00:30:00
Dec  9 21:15:00 mybox sendmail[15368]: hBA5F0QL015368: from=mailman, 
size=933, class=0, nrcpts=1, msgid=<200312100515.hBA5
F0QL015368 at mybox.cacklehoof.com>, relay=mailman at localhost
Dec  9 21:15:00 mybox sm-mta[15369]: hBA5F0Wu015369: 
from=<mailman at mybox.cacklehoof.com>, size=1221, class=0, nrcpts=1, ms
gid=<200312100515.hBA5F0QL015368 at mybox.cacklehoof.com>, proto=ESMTP, 
daemon=MTA, relay=localhost.cacklehoof.com [
Dec  9 21:15:00 mybox sendmail[15368]: hBA5F0QL015368: to=mailman, 
ctladdr=mailman (91/26), delay=00:00:00, xdelay=00:00:0
0, mailer=relay, pri=30289, relay=localhost.cacklehoof.com. 
[], dsn=2.0.0, stat=Sent (hBA5F0Wu015369 Message acce
pted for delivery)
Dec  9 21:15:00 mybox sm-mta[15370]: hBA5F0Wu015369: 
to=<mailman at mybox.cacklehoof.com>, ctladdr=<mailman at mybox.cacklehoof.
com> (91/26), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31516, 
relay=local, dsn=2.0.0, stat=Sent
Dec  9 21:15:04 mybox sm-mta[15372]: hBA5F4Wu015372: SYSERR(root): 
buildaddr: unknown mailer mailman

I really appreciate all your help, and a HUGE thanks to those who have 
already sent me some ideas. I still can't seem to figure out what is 
going on. It's almost as if sendmail is refusing to see mailman as a 

Thanks again, and I look forward to the next set of suggestions. :)

David Pruitt

More information about the Mailman-Users mailing list