Leak a little bit of info about why a message is rejected
[mirror/dsa-puppet.git] / modules / exim / templates / eximconf.erb
index 4676dad..fb0da2e 100644 (file)
@@ -115,6 +115,8 @@ domainlist bsmtp_domains = ${if exists {/etc/exim4/bsmtp}{partial-lsearch;/etc/e
 
 domainlist handled_domains = +local_domains : +virtual_domains : +bsmtp_domains
 
+domainlist ourself_and_handled = $primary_hostname : +handled_domains
+
 localpartlist local_only_users = lsearch;/etc/exim4/localusers
 
 localpartlist postmasterish = postmaster : abuse : hostmaster
@@ -129,14 +131,12 @@ hostlist reservedaddrs = <%= scope.lookupvar('site::nodeinfo')['reservedaddrs']
 domainlist mailhubdomains = lsearch;/etc/exim4/manualroute
 
 <%- end -%>
-<%- if has_variable?("exim_ssl_certs") && exim_ssl_certs == "true" -%>
 tls_certificate = /etc/exim4/ssl/thishost.crt
 tls_privatekey = /etc/exim4/ssl/thishost.key
 tls_try_verify_hosts = *
 tls_verify_certificates = /etc/exim4/ssl/ca.crt
 tls_crl = /etc/exim4/ssl/ca.crl
 
-<%- end -%>
 # The setting below causes Exim to do a reverse DNS lookup on all incoming
 # IP calls, in order to get the true host name. If you feel this is too
 # expensive, you can specify the networks for which a lookup is done, or
@@ -196,8 +196,13 @@ queue_only_load = 35
 smtp_load_reserve = 20
 <%- else -%>
 queue_run_max = 5
+<%- if scope.lookupvar('::processorcount').to_s != 'undefined' -%>
+deliver_queue_load_max = <%= [scope.lookupvar('::processorcount').to_i,2].max * 5 %>
+queue_only_load = <%= [scope.lookupvar('::processorcount').to_i,2].max * 4 %>
+<%- else -%>
 deliver_queue_load_max = 10
-queue_only_load = 5
+queue_only_load = 8
+<%- end -%>
 <%- end -%>
 queue_list_requires_admin = false
 
@@ -230,9 +235,7 @@ admin_groups = adm
 remote_sort_domains = *.debian.org:*.debian.net
 
 pipelining_advertise_hosts = !*
-<%- if has_variable?("exim_ssl_certs") && exim_ssl_certs == "true" -%>
 tls_advertise_hosts = *
-<%- end -%>
 smtp_enforce_sync = true
 
 log_selector = +tls_cipher +tls_peerdn +queue_time +deliver_time +smtp_connection +smtp_incomplete_transaction +smtp_confirmation
@@ -556,7 +559,7 @@ check_recipient:
 
   drop   !hosts        = +debianhosts
          !acl          = acl_spamlovers
-         condition     = ${if match_domain{$sender_helo_name}{$primary_hostname:+handled_domains}}
+         condition     = ${if match_domain{$sender_helo_name}{+ourself_and_handled}}
          condition     = ${if !match{$sender_host_name}{${rxquote:$sender_helo_name}\N$\N}}
          message       = HELO mismatch Forged HELO for ($sender_helo_name)
 
@@ -834,6 +837,7 @@ check_recipient:
                         ${lookup{$local_part}lsearch{/var/lib/misc/$primary_hostname/mail-callout}{$local_part}{}}
           !hosts   = +debianhosts : WHITELIST
          !verify  = sender/callout=90s,maxwait=300s
+         message  = "Sender verification failed: $acl_verify_message"
 
 <%- end -%>
 <%- if scope.lookupvar('site::nodeinfo')['mailrelay'] -%>
@@ -1318,11 +1322,11 @@ packages:
   file_transport = address_file
   pipe_transport = address_pipe
   domains = packages.debian.org
-  require_files = /org/packages.debian.org/conf/maintainer
-  data = ${lookup{$local_part}cdb{/org/packages.debian.org/conf/maintainer.cdb}}
+  require_files = /srv/packages.debian.org/conf/maintainer
+  data = ${lookup{$local_part}cdb{/srv/packages.debian.org/conf/maintainer.cdb}}
   headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}"
-  transport_home_directory = /org/packages.debian.org/mail
-  transport_current_directory = /org/packages.debian.org/mail
+  transport_home_directory = /srv/packages.debian.org/mail
+  transport_current_directory = /srv/packages.debian.org/mail
   check_ancestor
   retry_use_local_part
   no_more
@@ -1364,14 +1368,13 @@ rt_otherwise:
   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_parts = ${lookup{${sg{$local_part}{-(comment|done)}{}}}lsearch{RT_QUEUE_MAP}{$local_part}{}}
   local_part_suffix = +*
   local_part_suffix_optional
   pipe_transport = rt_pipe
-  data = "|/usr/bin/rt-mailgate --queue '${lookup{${sg{$local_part}{-comment}{}}}lsearch{RT_QUEUE_MAP}}' --url https://rt.debian.org/ --extension ticket --action ${if match{$local_part}{.*-comment.*}{comment}{correspond}}"
+  data = "|/usr/bin/rt-mailgate --queue '${lookup{${sg{$local_part}{-(comment|done)}{}}}lsearch{RT_QUEUE_MAP}}' --url https://rt.debian.org/ --extension ticket --action ${if match{$local_part}{.*-comment.*}{comment}{${if match{$local_part}{.*-done.*}{correspond-resolve}{correspond}}}}"
   headers_remove = Subject
   headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}\nSubject: ${if and {{first_delivery}{match {$h_subject:}{(?i)(.*?)\\\\[?debian rt\\\\]?[:\\s]*(.*)}}} {$1$2}{$h_subject:}}"
-
 <%- end -%>
 
 # exim4 fails the router if it can't change to the user/group for delivery
@@ -1566,10 +1569,8 @@ remote_smtp:
   driver = smtp
   connect_timeout = 1m
   delay_after_cutoff = false
-<%- if has_variable?("exim_ssl_certs") && exim_ssl_certs == "true" -%>
   tls_certificate = /etc/exim4/ssl/thishost.crt
   tls_privatekey = /etc/exim4/ssl/thishost.key
-<%- end -%>
 
 <%=
 out = ""
@@ -1581,13 +1582,11 @@ remote_smtp_smarthost:
   delay_after_cutoff = false
   port = '
   out += scope.lookupvar('site::nodeinfo')['smarthost_port'].to_s + "\n"
-  if has_variable?("exim_ssl_certs") && exim_ssl_certs == "true"
-    out += '  tls_tempfail_tryclear = false
+  out += '  tls_tempfail_tryclear = false
   hosts_require_tls = ' + scope.lookupvar('site::nodeinfo')['smarthost'] + '
   tls_certificate = /etc/exim4/ssl/thishost.crt
   tls_privatekey = /etc/exim4/ssl/thishost.key
 '
-  end
 end
 out
 %>