maildroprc 1.7 KB

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