maildroprc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. cc "|$DEBUGMAIL processing"
  35. if ($FROM eq "")
  36. {
  37. EXITCODE=$UNHANDLED
  38. exit
  39. }
  40. foreach /^(To|Cc):.*/
  41. {
  42. ADDR=getaddr($MATCH)
  43. include "$FILTERDIR/$MEMBERGROUP"
  44. include "$FILTERDIR/$ORGANIZERGROUP"
  45. include "$FILTERDIR/$POSTMASTER"
  46. include "$FILTERDIR/subscriptions"
  47. }
  48. if ($FORMEMBER && $FORORGANIZER)
  49. {
  50. EXITCODE=$BADREQUEST
  51. cc "|$DEBUGMAIL multiple-mail-group-set"
  52. exit
  53. }
  54. if ($MAILGROUP eq "")
  55. {
  56. EXITCODE=$BADREQUEST
  57. cc "|$DEBUGMAIL no-mail-group-set"
  58. exit
  59. }
  60. if (!$CONTINUE)
  61. {
  62. EXITCODE=$UNHANDLED
  63. cc "|$DEBUGMAIL no-continue"
  64. exit
  65. }
  66. LISTDIR="$MAILDROPDIR/$MAILGROUP"
  67. MLIST="$LISTDIR/mlist"
  68. SLIST="$LISTDIR/slist"
  69. gdbmopen($MLIST, "R")
  70. TO=gdbmfetch(tolower($TOALIAS))
  71. gdbmclose
  72. DISPATCH=1
  73. if ($FORPOSTMASTER)
  74. {
  75. include "$FILTERDIR/$POSTMASTER"
  76. }
  77. else
  78. {
  79. include "$FILTERDIR/$MAILGROUP"
  80. }
  81. EXITCODE=$UNHANDLED
  82. cc "|$DEBUGMAIL unhandled"
  83. exit