[Mailman-Developers] I want to transfer a mail to a program

Richard Ellerbrock richarde@eskom.co.za
Mon, 06 Dec 1999 08:52:10 +0200


>I am writing a Script. Now what I want to do is when I send a mail to a =
list=20
>member in a mailman, I want to direct the mail to a program which can be =
a=20
>script or a servlet or anything that can execute on the server. The task =
of=20
>this script shall be to save the received mail to a file.=20
>
>Can some one tell me how this can be done

You probably want to use procmail as a front to mailman. Modify your alias =
file and run the message through procmail first, and then pass it to =
mailman. I did a similar trick to block external e-mails to mailman to =
prevent non-employees being able to subscribe to our internal lists. =
Mailman cannot do this. Here is the method:

Modify /etc/aliases:

www-request:            "|/usr/bin/procmail -m LIST=3D'www' /etc/mail/procm=
ailrc.lists"

This will call procmail instead of mailman. Mailman is called inside the =
procmail script:

:0                              # pass along all mail for eskom
* ^From:.*eskom.co.za
| /home/mailman/mail/wrapper mailcmd $LIST

:0                              # reply to all mail not from eskom
* !^FROM_DAEMON
* !^X-Loop: owner-${LIST}@lists.eskom.co.za
{
   :0 hc
   | (formail -r -A"Precedence: bulk" \
                  -A"X-Loop: owner-${LIST}@lists.eskom.co.za" ; \
                 echo "\
This is an ESKOM internal mailing list to which you may not \
subscribe. If you have any queries, contact owner-${LIST}@lists.eskom.co.za=
 \
for further information.") | \
                 $SENDMAIL -t -f owner-${LIST}@lists.eskom.co.za
}

:0                               # drop all other mail
/dev/null


Using this method and the procmailex manpage, you should be able to do =
what you want.

--
Richard Ellerbrock
richarde@eskom.co.za