maildroprc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # Global maildrop filter file
  2. # Uncomment this line to make maildrop default to ~/Maildir for
  3. # delivery- this is where courier-imap (amongst others) will look.
  4. #DEFAULT="$HOME/Maildir"
  5. import DEBUG
  6. import TEST
  7. SHELL="/bin/bash"
  8. SENDMAIL="/opt/cropswap/sendmail.sh"
  9. DEBUGMAIL="/opt/cropswap/debug.sh"
  10. MAILBOT="/opt/cropswap/mailbot.sh"
  11. FILTERDIR="/opt/cropswap/filters"
  12. MAILDROPDIR="/var/mail/maildrop"
  13. DEBUG=($DEBUG != 0)
  14. TEST=($TEST != 0)
  15. if ($TEST)
  16. {
  17. import MAILDROPDIR
  18. }
  19. UNHANDLED=5
  20. BADREQUEST=4
  21. UNREGISTERED=3
  22. UNSUBSCRIBED=2
  23. FATAL=1
  24. MAILGROUP=""
  25. MAILGROUPALIAS=""
  26. POSTMASTER="postmaster@localhost"
  27. # uni-directional group
  28. # From anyone -> organizers
  29. # From organizers -> subscribed members
  30. ORGANIZERGROUP="cropswap@shandan.one"
  31. # bi-directional group
  32. # From subscribed member -> other subscribed members
  33. MEMBERGROUP="cropswap-members@shandan.one"
  34. foreach /^(To|Cc):.*/
  35. {
  36. ADDR=getaddr($MATCH)
  37. include "$FILTERDIR/$MEMBERGROUP"
  38. include "$FILTERDIR/$ORGANIZERGROUP"
  39. include "$FILTERDIR/$POSTMASTER"
  40. include "$FILTERDIR/subscriptions"
  41. }
  42. if ($FORMEMBER && $FORORGANIZER)
  43. {
  44. EXITCODE=$BADREQUEST
  45. cc "|$DEBUGMAIL multiple-mail-group-set"
  46. exit
  47. }
  48. if ($MAILGROUP eq "")
  49. {
  50. EXITCODE=$BADREQUEST
  51. cc "|$DEBUGMAIL no-mail-group-set"
  52. exit
  53. }
  54. if (!$CONTINUE)
  55. {
  56. EXITCODE=$UNHANDLED
  57. cc "|$DEBUGMAIL no-continue"
  58. exit
  59. }
  60. LISTDIR="$MAILDROPDIR/$MAILGROUP"
  61. MLIST="$LISTDIR/mlist"
  62. SLIST="$LISTDIR/slist"
  63. gdbmopen($MLIST, "R")
  64. TO=gdbmfetch($TOALIAS)
  65. gdbmclose
  66. DISPATCH=1
  67. if ($FORPOSTMASTER)
  68. {
  69. include "$FILTERDIR/$POSTMASTER"
  70. }
  71. else
  72. {
  73. include "$FILTERDIR/$MAILGROUP"
  74. }
  75. EXITCODE=$UNHANDLED
  76. cc "|$DEBUGMAIL unhandled"
  77. exit