+# our exim class
+# @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_packagesqamaster this system handles packages.qa.debian.org
+# @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,
+ Optional[Integer] $mail_port,
+ 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,
) {
-
- $is_packagesmaster = has_role('packagesmaster')
- $is_packagesqamaster = has_role('packagesqamaster')
-
include exim::vdomain::setup
include debian_org::mail_incoming_port
+ 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_' }
munin::check { 'exim_mailqueue': }
munin::check { 'exim_mailstats': }