piatti has changed to postfix - reflect in spohr's comments
[mirror/dsa-puppet.git] / modules / exim / files / common / exim4.conf
index e1ff1df..696901d 100644 (file)
@@ -199,6 +199,10 @@ av_scanner = CLAMAV
 
 .ifdef HAVE_USER_DEBBUGS MAIL_RELAY STUPID_FIREWALL
 daemon_smtp_ports = 25 : 587
+.else
+.ifdef EVEN_MORE_STUPID_FIREWALL
+daemon_smtp_ports = 25 : 2025
+.endif
 .endif
 
 admin_groups = adm
@@ -332,8 +336,20 @@ check_submission:
 
   defer
           ratelimit      = 5 / 60m / per_rcpt / $sender_host_address
+          !hosts         = +debianhosts
           message        = sorry, only 5 reports per hour for submission
 
+  accept  domains  = +local_domains
+          hosts    = +debianhosts
+          endpass
+         message  = unknown user
+         verify   = recipient
+
+  accept  domains  = +mailhubdomains
+          endpass
+         message  = unknown user
+         verify   = recipient/callout=30s,defer_ok,use_sender,no_cache
+
   accept  domains  = +submission_domains
           endpass
          message  = unknown user
@@ -505,7 +521,7 @@ check_recipient:
 
   warn    domains  = rt.debian.org
           set acl_m1 = RTMail
-          set acl_m12 = ${if def:acl_m12 {$acl_m12} {${if match{$local_part}{[^+]+\\+\\d+} {RTMailRecipientHasSubaddress}}}}
+          set acl_m12 = ${if def:acl_m12 {$acl_m12} {${if or{{match{$local_part}{[^+]+\\+\\d+}}{match{$local_part}{[^+]+\\+new}}} {RTMailRecipientHasSubaddress}}}}
 
   warn    domains  = packages.qa.debian.org
           set acl_m1 = PTSMail
@@ -628,7 +644,7 @@ check_recipient:
   accept  domains  = +mailhubdomains
           endpass
          message  = unknown user
-         verify   = recipient/callout,defer_ok
+         verify   = recipient/callout=30s,defer_ok,use_sender,no_cache
 
   accept  domains  = +handled_domains
           endpass
@@ -978,7 +994,34 @@ bugs:
 .endif
 
 # This router delivers for rt.d.o
-rt:
+rt_force_new_verbose:
+  debug_print = "R: rt for $local_part+new@$domain"
+  driver = redirect
+  domains = rt.debian.org
+  require_files = /usr/bin/rt-mailgate : RT_QUEUE_MAP
+  local_parts = ${lookup{${sg{$local_part}{-comment}{}}}lsearch{RT_QUEUE_MAP}{$local_part}{}}
+  local_part_suffix = +new
+  pipe_transport = rt_pipe
+  data = "|/usr/bin/rt-mailgate --queue '${lookup{${sg{$local_part}{-comment}{}}}lsearch{RT_QUEUE_MAP}}' --url https://rt.debian.org/ --action ${if match{$local_part}{.*-comment.*}{comment}{correspond}}"
+  headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}"
+
+# FIXME: figure out how to generalize this approach so that all of the following would work
+# - rt+NNNN@rt.debian.org          : attach correspondence to ticket (verbose)
+# - rt+NNNN-quiesce@rt.debian.org  : attach correspondence to ticket (quiesce)
+# - rt+NNNN-<action>@rt.debian.org : attach correspondence to ticket (some action)
+# requires modification to custom condition in 'scrips'
+rt_force_new_quiesce:
+  debug_print = "R: rt for $local_part+new-quiesce@$domain"
+  driver = redirect
+  domains = rt.debian.org
+  require_files = /usr/bin/rt-mailgate : RT_QUEUE_MAP
+  local_parts = ${lookup{${sg{$local_part}{-comment}{}}}lsearch{RT_QUEUE_MAP}{$local_part}{}}
+  local_part_suffix = +new-quiesce
+  pipe_transport = rt_pipe
+  data = "|/usr/bin/rt-mailgate --queue '${lookup{${sg{$local_part}{-comment}{}}}lsearch{RT_QUEUE_MAP}}' --url https://rt.debian.org/ --action ${if match{$local_part}{.*-comment.*}{comment}{correspond}}"
+  headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}\nX-RT-Mode: quiesce"
+
+rt_otherwise:
   debug_print = "R: rt for $local_part@$domain"
   driver = redirect
   domains = rt.debian.org