# Global maildrop filter file # Uncomment this line to make maildrop default to ~/Maildir for # delivery- this is where courier-imap (amongst others) will look. #DEFAULT="$HOME/Maildir" 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" # uni-directional group # From anyone -> organizers # From organizers -> subscribed members ORGANIZERGROUP="cropswap@shandan.one" # bi-directional group # From subscribed member -> other subscribed members 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