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
hostlist debianhosts = <; ; 127.0.0.1 ; ::1 ; /var/lib/misc/thishost/debianhosts ; 89.16.166.49 ; 82.195.75.76 ; 2001:41b8:202:deb:bab5:0:52c3:4b4c
-hostlist reservedaddrs = <%= scope.lookupvar('site::nodeinfo')['reservedaddrs'] %>
+hostlist reservedaddrs = 0.0.0.0/8 : 127.0.0.0/8 : 10.0.0.0/8 : 169.254.0.0/16 : 172.16.0.0/12 : 192.0.0.0/24 : 192.168.0.0/16 : 224.0.0.0/4 : 240.0.0.0/5 : 248.0.0.0/5
<%- if scope.lookupvar('site::nodeinfo')['mailrelay'] -%>
# Domains we relay for; that is domains that aren't considered local but we
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
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
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
accept condition = ${if eq {$acl_m_rprf}{}{no}{yes}}
<%- end -%>
-<%- if scope.lookupvar('site::nodeinfo')['bugsmx'] -%>
+<%- if scope.lookupvar('site::nodeinfo')['bugsmaster'] or scope.lookupvar('site::nodeinfo')['bugsmx'] -%>
warn domains = bugs.debian.org
set acl_m_rprf = BugsMail
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)
${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'] -%>
<%=
out = ""
if not scope.lookupvar('site::nodeinfo')['smarthost'].empty?
-out = '
+out = "
smarthost:
- debug_print = "R: smarthost for $local_part@$domain"
+ debug_print = \"R: smarthost for $local_part@$domain\"
driver = manualroute
domains = !+handled_domains
transport = remote_smtp_smarthost
- route_list = * ' + scope.lookupvar('site::nodeinfo')['smarthost']
- if scope.lookupvar('site::nodeinfo')['smarthost'] == 'mailout.debian.org'
- out += '/MX'
- end
- out += '
+ route_list = * #{scope.lookupvar('site::nodeinfo')['smarthost']}
host_find_failed = defer
same_domain_copy_routing = yes
no_more
-'
+"
end
out
%>
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
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
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 = ""
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
%>