[Mailman-Developers] MM2.1a2 integration with Sendmail

Ron Jarrell jarrell@vt.edu
Mon, 30 Jul 2001 16:21:24 -0400


At 01:30 PM 7/29/01 -0700, J C Lawrence wrote:
>On Sun, 29 Jul 2001 15:15:10 -0400 
>Ron Jarrell <jarrell@vt.edu> wrote:
>
>> Yes, you could do some handwaving with psuedo hosts.  But, if
>> you're mixing lists and people, how are you going to tell which
>> are which without keeping a list of them somewhere?  At that
>> point, /etc/aliases isn't a bad way to go...  Unless all your
>> lists have a particular pattern (i.e. they're *all* something-l)
>
>There are easier ways to go.  If .../lists/<listname>/config.db
>exists its a moderately safe bet that a Mailman list "listname"
>exists and that therefore all the matching addresses also (should)
>exist with appropriate rewrites.  Many use exactly this algorithm
>under various MTAs to run without any list specific alias files.

Yea, I thought about that.  Unfortunately, that kind of lookup is
tough to do, and expensive.  The pile of black magic dust was growing,
so I stopped thinking about it.  You'd basically have to write another
program, and build a program class map, along the lines of

Ksomething program /home/mailman/is-it-a-list

That could be an honest to god "verify the existence of a list"
python program, or just a simple shell script that probes for the
config db.  It would also have to cope with figuring out the -owner,
et.al aliases.  You then need to write cf code that handles
the return from that program, and if it looks right, delivering it
as mailman:address, which would trigger the mailman rule that
goes to the existing mm-handler.

However, every piece of mail through your machine then would cause
an extra fork and exec to fire off this db routine.

The other option, if you want to avoid the potential security issue of
having sendmail generate aliases from a file writable by mailman, 
is to have a periodic process that just kicks out a list of lists, and
their associated other aliases.  You could build that into an honest
to god db map periodically with makemap, and then do a native
sendmail hash lookup, at which point we're back to the "write cf
code to deliver to mailman:foobar", which would perform much
better, but still has the "something's gotta run."

It's much cleaner if you can seperate out lists.whatever hostnames,
but not everyone can do that.