[Mailman-Users] More mm-handler SOS
david at davidpruitt.com
Wed Dec 10 05:37:07 CET 2003
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. 
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
## 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,
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. 
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:
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:
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. 
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
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
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>:
22.214.171.124 does not like recipient.
Remote host said: 554 5.3.5 buildaddr: unknown mailer mailman
Giving up on 126.96.36.199.
--- 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: starting daemon (8.12.6):
queueing at 00:30:00
Dec 9 21:15:00 mybox sendmail: 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: 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 [127.0.0.1
Dec 9 21:15:00 mybox sendmail: hBA5F0QL015368: to=mailman,
ctladdr=mailman (91/26), delay=00:00:00, xdelay=00:00:0
0, mailer=relay, pri=30289, relay=localhost.cacklehoof.com.
[127.0.0.1], dsn=2.0.0, stat=Sent (hBA5F0Wu015369 Message acce
pted for delivery)
Dec 9 21:15:00 mybox sm-mta: 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: 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. :)
More information about the Mailman-Users