metadata_exporter.conf 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. rules {
  2. QUARANTINE {
  3. backend = "http";
  4. url = "http://nginx:9081/pipe.php";
  5. selector = "reject_no_global_bl";
  6. formatter = "default";
  7. meta_headers = true;
  8. }
  9. RLINFO {
  10. backend = "http";
  11. url = "http://nginx:9081/pipe_rl.php";
  12. selector = "ratelimited";
  13. formatter = "json";
  14. }
  15. PUSHOVERMAIL {
  16. backend = "http";
  17. url = "http://nginx:9081/pushover.php";
  18. selector = "mailcow_rcpt";
  19. # Only return msgid, do not parse the full message
  20. formatter = "msgid";
  21. meta_headers = true;
  22. }
  23. }
  24. custom_select {
  25. mailcow_rcpt = <<EOD
  26. return function(task)
  27. local action = task:get_metric_action('default')
  28. if task:has_symbol('NO_LOG_STAT') or (action == 'reject' or action == 'add header' or action == 'rewrite subject') then
  29. return false
  30. else
  31. if task:get_symbol("RCPT_MAILCOW_DOMAIN") then
  32. return true
  33. end
  34. return false
  35. end
  36. end
  37. EOD;
  38. ratelimited = <<EOD
  39. return function(task)
  40. local ratelimited = task:get_symbol("RATELIMITED")
  41. if ratelimited then
  42. return true
  43. end
  44. return false
  45. end
  46. EOD;
  47. reject_no_global_bl = <<EOD
  48. return function(task)
  49. if not task:has_symbol('GLOBAL_SMTP_FROM_BL') and not task:has_symbol('GLOBAL_MIME_FROM_BL') then
  50. local action = task:get_metric_action('default')
  51. return (action == 'reject')
  52. end
  53. return false
  54. end
  55. EOD;
  56. }
  57. custom_format {
  58. msgid = <<EOD
  59. return function(task)
  60. return task:get_message_id()
  61. end
  62. EOD;
  63. }