123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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"
- RESPDIR="/opt/cropswap/responses"
- MAILDROPDIR="/var/mail/maildrop"
- DEBUG=($DEBUG != 0)
- TEST=($TEST != 0)
- if ($TEST)
- {
- import MAILDROPDIR
- }
- UNDELIVERABLE=6
- UNHANDLED=5
- BADREQUEST=4
- UNREGISTERED=3
- UNSUBSCRIBED=2
- FATAL=1
- TO=""
- REPLYTO=""
- MAILGROUP=""
- MAILGROUPALIAS=""
- POSTMASTER="postmaster@localhost"
- ORGANIZERGROUP="cropswap@shandan.one"
- MEMBERGROUP="cropswap-members@shandan.one"
- cc "|$DEBUGMAIL processing"
- if ($FROM eq "")
- {
- EXITCODE=$UNHANDLED
- # this should only be able to happen
- # when invoking maildrop on the cmdline
- 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"
- }
- if ($MAILGROUP eq "")
- {
- EXITCODE=$BADREQUEST
- cc "|$DEBUGMAIL no-mail-group-set"
- }
- if (!$CONTINUE)
- {
- EXITCODE=$UNHANDLED
- cc "|$DEBUGMAIL no-continue"
- }
- if ($EXITCODE != 0)
- {
- if ($TOPOSTASTER)
- {
- exit
- }
- else
- {
- RESP="$RESPDIR/$EXITCODE.html"
- to "|$MAILBOT"
- }
- }
- LISTDIR="$MAILDROPDIR/$MAILGROUP"
- MLIST="$LISTDIR/mlist"
- SLIST="$LISTDIR/slist"
- DISPATCH=1
- if ($FORPOSTMASTER)
- {
- include "$FILTERDIR/$POSTMASTER"
- }
- else
- {
- include "$FILTERDIR/$MAILGROUP"
- }
- EXITCODE=$UNHANDLED
- cc "|$DEBUGMAIL unhandled"
- exit
|