# our exim class
-# @param smarthost host to relay through (if unset)
+# @param use_smarthost use the smarthost
+# @param smarthost host to relay through (if set and use_smarthost)
# @param is_bugsmx this system handles bugs.debian.org
# @param is_mailrelay this system is a mailrelay, both in and out, for debian hosts
# @param is_rtmaster this system handles rt.debian.org
# @param is_packagesqamaster this system handles packages.qa.debian.org
# @param smarthost_port the port on which satellites send mail to the smarthost
class exim (
+ Boolean $use_smarthost = true,
Optional[String] $smarthost,
Boolean $is_bugsmx = false,
Boolean $is_mailrelay = false,
include exim::vdomain::setup
include debian_org::mail_incoming_port
- if $smarthost and $smarthost != '' {
+ if $use_smarthost {
$heavy = false
+
+ if ! smarthost {
+ fail('No smarthost set but use_smarthost is true')
+ }
} else {
$heavy = true
}
accept verify = certificate
<%- end -%>
-<%- unless @smarthost -%>
+<%- unless @use_smarthost -%>
# These are in HELO acl so that they are only run once. They increment a counter,
# so we don't want it to increment per rcpt to.
accept local_parts = +postmasterish
domains = +virtual_domains : +bsmtp_domains
-<%- unless @smarthost -%>
+<%- unless @use_smarthost -%>
deny message = host $sender_host_address is listed in $dnslist_domain; see $dnslist_text
dnslists = ${if match_domain{$domain}{+virtual_domains}\
{${if exists {${extract{directory}{VDOMAINDATA}{${value}/rbllist}}}\
domains = +handled_domains
!hosts = +debianhosts : WHITELIST
-<%- unless @smarthost -%>
+<%- unless @use_smarthost -%>
deny domains = +handled_domains
local_parts = ${if match_domain{$domain}{+virtual_domains}\
{${if exists {${extract{directory}{VDOMAINDATA}{${value}/callout_users}}}\
transport = remote_smtp
ignore_target_hosts = +reservedaddrs
-<%- if @smarthost -%>
+<%- if @use_smarthost -%>
smarthost:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
tls_certificate = /etc/exim4/ssl/thishost.crt
tls_privatekey = /etc/exim4/ssl/thishost.key
-<%- if @smarthost -%>
+<%- if @use_smarthost -%>
remote_smtp_smarthost:
debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
driver = smtp
delay_after_cutoff = false
port = <%= @smarthost_port %>
tls_tempfail_tryclear = false
- hosts_require_tls = <%= scope.lookupvar('deprecated::nodeinfo')['smarthost'] %>
+ hosts_require_tls = <%= @smarthost %>
tls_certificate = /etc/exim4/ssl/thishost.crt
tls_privatekey = /etc/exim4/ssl/thishost.key
<%- end -%>