# 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_packagesmaster this system handles packagesrt.debian.org
+# @param is_packagesmaster this system handles packages.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
+# @param mail_port override the default incoming mailport (only applicable for hosts behind an incoming relay)
+# @param smarthost_port the port on which satellites send mail to the smarthost (needs to be the same on both sides)
class exim (
Optional[String] $smarthost,
+ Boolean $use_smarthost = true,
Boolean $is_bugsmx = false,
Boolean $is_mailrelay = false,
Boolean $is_rtmaster = false,
Boolean $is_packagesmaster = false,
Boolean $is_packagesqamaster = false,
Integer $smarthost_port = 587,
+ Optional[Integer] $mail_port = undef,
) {
- include exim::vdomain::setup
- include debian_org::mail_incoming_port
-
- if $smarthost {
+ if $use_smarthost {
$heavy = false
+
+ if ! smarthost {
+ fail('No smarthost set but use_smarthost is true')
+ }
} else {
$heavy = true
+ if $mail_port {
+ fail('Cannot override mail_port in heavy/no-smarthost hosts')
+ }
}
munin::check { 'ps_exim4': script => 'ps_' }
Package['exim4-daemon-heavy']->Mailalias<| |>
- concat::fragment { 'virtual_domain_template':
- target => '/etc/exim4/virtualdomains',
- content => template('exim/virtualdomains.erb'),
- order => '05',
- }
-
service { 'exim4':
ensure => running,
require => [
file { '/etc/mailname':
content => template('exim/mailname.erb'),
}
- file { '/etc/exim4/manualroute':
- content => template('exim/manualroute.erb')
+
+ concat { '/etc/exim4/virtualdomains': }
+ concat::fragment { 'virtualdomains_header':
+ target => '/etc/exim4/virtualdomains',
+ content => template('exim/virtualdomains.header.erb'),
+ order => '00',
}
+
file { '/etc/exim4/locals':
content => template('exim/locals.erb')
}