maildroprc 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. RESPDIR="/opt/cropswap/responses"
  13. MAILDROPDIR="/var/mail/maildrop"
  14. DEBUG=($DEBUG != 0)
  15. TEST=($TEST != 0)
  16. if ($TEST)
  17. {
  18. import MAILDROPDIR
  19. }
  20. UNDELIVERABLE=6
  21. UNHANDLED=5
  22. BADREQUEST=4
  23. UNREGISTERED=3
  24. UNSUBSCRIBED=2
  25. FATAL=1
  26. TO=""
  27. REPLYTO=""
  28. MAILGROUP=""
  29. MAILGROUPALIAS=""
  30. POSTMASTER="postmaster@localhost"
  31. # uni-directional group
  32. # From anyone -> organizers
  33. # From organizers -> subscribed members
  34. ORGANIZERGROUP="cropswap@shandan.one"
  35. # bi-directional group
  36. # From subscribed member -> other subscribed members
  37. MEMBERGROUP="cropswap-members@shandan.one"
  38. cc "|$DEBUGMAIL processing"
  39. if ($FROM eq "")
  40. {
  41. EXITCODE=$UNHANDLED
  42. # this should only be able to happen
  43. # when invoking maildrop on the cmdline
  44. exit
  45. }
  46. foreach /^(To|Cc):.*/
  47. {
  48. ADDR=getaddr($MATCH)
  49. include "$FILTERDIR/$MEMBERGROUP"
  50. include "$FILTERDIR/$ORGANIZERGROUP"
  51. include "$FILTERDIR/$POSTMASTER"
  52. include "$FILTERDIR/subscriptions"
  53. }
  54. if ($FORMEMBER && $FORORGANIZER)
  55. {
  56. EXITCODE=$BADREQUEST
  57. cc "|$DEBUGMAIL multiple-mail-group-set"
  58. }
  59. if ($MAILGROUP eq "")
  60. {
  61. EXITCODE=$BADREQUEST
  62. cc "|$DEBUGMAIL no-mail-group-set"
  63. }
  64. if (!$CONTINUE)
  65. {
  66. EXITCODE=$UNHANDLED
  67. cc "|$DEBUGMAIL no-continue"
  68. }
  69. if ($EXITCODE != 0)
  70. {
  71. if ($TOPOSTASTER)
  72. {
  73. exit
  74. }
  75. else
  76. {
  77. RESP="$RESPDIR/$EXITCODE.html"
  78. to "|$MAILBOT"
  79. }
  80. }
  81. LISTDIR="$MAILDROPDIR/$MAILGROUP"
  82. MLIST="$LISTDIR/mlist"
  83. SLIST="$LISTDIR/slist"
  84. DISPATCH=1
  85. if ($FORPOSTMASTER)
  86. {
  87. include "$FILTERDIR/$POSTMASTER"
  88. }
  89. else
  90. {
  91. include "$FILTERDIR/$MAILGROUP"
  92. }
  93. EXITCODE=$UNHANDLED
  94. cc "|$DEBUGMAIL unhandled"
  95. # this should only be able to happen
  96. # when invoking maildrop on the cmdline
  97. exit