[Mailman-Users] Mailman's Host Name & sendmail's Virtual Users

Jeremy Butler jbutler at ua.edu
Sun Feb 16 19:38:55 CET 2003

I recently installed Mailman 2.1.1 on a RedHat 8 box.  I'd like the one 
machine to be a listserver for two domains:  www.tcf.ua.edu and 
www.cinemastudies.org (which is set up as a virtual host on Apache 1.3.27).

Mailman seems to be set okay on www.tcf.ua.edu, but when I tried something 
similar with SCMS-L at www.cinemastudies.org and sent e-mail to it, I got

550 5.7.1 <SCMS-L at www.cinemastudies.org>... Relaying denied

In Mailman's General Options Section, I set the "Host name this list 
prefers for email" to www.cinemastudies.org, but this didn't do the trick.

So, I poked around in the sendmail docs and found the following bit about 
virtual user tables (below); but I'm rather fuzzy about the details.  (I 
haven't been using www.cinemastudies.org as an e-mail receiver 
previously.)  Are virtual users how one creates virtual hosts?  Is this 
what I need to do:

1.  Create a text file named sourcefile in /etc/mail and add:

@www.tcf.ua.edu         %1 at www.cinemastudies.org

2.  Run

makemap dbm /etc/mail/virtusertable < sourcefile

3.  Add a line to /etc/mail/local-host-names:


4.  Restart sendmail.

Do I need to edit /etc/mail/generics-domains?

Thanks for the assistance.

---- sendmail docs ----


Create the virtual user table. This is explained in detail in section 
19.6.28 of the sendmail book; an overview is given here. The table is a 
database that maps virtual addresses into real addresses. You create a text 
file where each line has a key/value pair, separated by a TAB. For example:

joe at yourdomain.com      jschmoe
jane at yourdomain.com     jdoe at othercompany.com
@yourdomain.com         jschmoe

In this first example, the address joe at yourdomain.com will be mapped to the 
local user jschmoe, jane at yourdomain.com will be mapped to the remote user 
jdoe at othercompany.com, and anything else coming in to yourdomain.com will 
also go to jschmoe.

joe at yourdomain.com      jschmoe
bogus at yourdomain.com    error:nouser No such user here
list at yourdomain.com     yourdomain-list
@yourdomain.com         %1 at othercompany.com

In this second example, the address joe at yourdomain.com will be mapped to 
the local user jschmoe, the address bogus at yourdomain.com will return the 
indicated error, the address list at yourdomain.com will be mapped to the 
local user yourdomain-list (which you would use the aliases file to 
ultimately resolve) and every other user at yourdomain.com will be mapped 
to a remote user of the same name at othercompany.com.


Build the virtual user table. If the above virtual user table text file is 
located at sourcefile, and you are using the dbm database type, then use 
the command:

makemap dbm /etc/mail/virtusertable < sourcefile

This actually creates one or more non-text files (typically 
/etc/mail/virtusertable.dir and /etc/mail/virtusertable.pag, or 
/etc/mail/virtusertable.db), but does not actually change 
/etc/mail/virtusertable itself, so this is the recommended location for 

If you would like to reverse-map local users for out-bound mail, you will 
need to add support for the generics table to your .mc file:

FEATURE(`genericstable', `dbm /etc/mail/genericstable')dnl

And you will need to create /etc/mail/genericstable which is like 
/etc/mail/virtusertable above except the columns are reversed:

jschmoe                 joe at yourdomain.com


Add your domain name to sendmail's class w. This is typically done by 
adding a line to /etc/mail/local-host-names (known as /etc/sendmail.cw 
prior to 8.10) with the value of your domain name.

Likewise, if you are using the genericstable, you should add any domains 
you wish to reverse-map to /etc/mail/generics-domains.

Restart or SIGHUP sendmail.

Jeremy Butler
jbutler at ua.edu

More information about the Mailman-Users mailing list