123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import DEBUG
- import TEST
- SHELL="/bin/bash"
- SENDMAIL="/opt/cropswap/sendmail.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"
- cc "|$DEBUGMAIL processing"
- if ($FROM eq "")
- {
- EXITCODE=$UNHANDLED
- exit
- }
- 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(tolower($TOALIAS))
- gdbmclose
- DISPATCH=1
- if ($FORPOSTMASTER)
- {
- include "$FILTERDIR/$POSTMASTER"
- }
- else
- {
- include "$FILTERDIR/$MAILGROUP"
- }
- EXITCODE=$UNHANDLED
- cc "|$DEBUGMAIL unhandled"
- exit
|