1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import DEBUG
- import TEST
- SHELL="/bin/bash"
- SENDMAIL="/opt/cropswap/sendmail.sh"
- SUBUNSUB="/opt/cropswap/subunsub.sh"
- DEBUGMAIL="/opt/cropswap/debug.sh"
- MAILBOT="/opt/cropswap/mailbot.sh"
- FILTERDIR="/opt/cropswap/filters"
- MAILDROPDIR="/var/mail/maildrop"
- DEBUG=($DEBUG != 0)
- TEST=($TEST != 0)
- if ($TEST)
- {
- import MAILDROPDIR
- }
- UNHANDLED=5
- BADREQUEST=4
- UNREGISTERED=3
- UNSUBSCRIBED=2
- FATAL=1
- MAILGROUP=""
- MAILGROUPALIAS=""
- POSTMASTER="postmaster@localhost"
- ORGANIZERGROUP="cropswap@shandan.one"
- MEMBERGROUP="cropswap-members@shandan.one"
- foreach /^(To|Cc):.*/
- {
- ADDR=getaddr($MATCH)
- include "$FILTERDIR/$MEMBERGROUP"
- include "$FILTERDIR/$ORGANIZERGROUP"
- include "$FILTERDIR/$POSTMASTER"
- include "$FILTERDIR/subscriptions"
- }
- if ($FORMEMBER && $FORORGANIZER)
- {
- EXITCODE=$BADREQUEST
- cc "|$DEBUGMAIL multiple-mail-group-set"
- exit
- }
- if ($MAILGROUP eq "")
- {
- EXITCODE=$BADREQUEST
- cc "|$DEBUGMAIL no-mail-group-set"
- exit
- }
- if (!$CONTINUE)
- {
- EXITCODE=$UNHANDLED
- cc "|$DEBUGMAIL no-continue"
- exit
- }
- LISTDIR="$MAILDROPDIR/$MAILGROUP"
- MLIST="$LISTDIR/mlist"
- SLIST="$LISTDIR/slist"
- gdbmopen($MLIST, "R")
- TO=gdbmfetch($TOALIAS)
- gdbmclose
- DISPATCH=1
- if ($FORPOSTMASTER)
- {
- include "$FILTERDIR/$POSTMASTER"
- }
- else
- {
- include "$FILTERDIR/$MAILGROUP"
- }
- EXITCODE=$UNHANDLED
- cc "|$DEBUGMAIL unhandled"
- exit
|