class mail::system { $postfix_smtp_listen = "all" $postfix_use_amavisd = "yes" $postfix_use_dovecot_lda = "yes" $postfix_use_schleuder = "yes" $postfix_use_sympa = "yes" $postfix_use_mlmmj = "yes" $postfix_use_firma = "yes" $postfix_use_submission = "yes" $postfix_use_smtps = "no" $postfix_anon_sasl = "yes" $postfix_manage_transport_regexp = "yes" $postfix_manage_virtual_regexp = "yes" $postfix_mydestination = '$myhostname, localhost.$mydomain, localhost' $postfix_default_relay_domains = '$mydestination' $postfix_mynetworks = hiera('postfix_mynetworks', "127.0.0.0/8") $postfix_manage_tls_policy = hiera('postfix_manage_tls_policy', 'no') case $sympa_subdomain { '': { $sympa_subdomain = "lists" } } # Module requirements include postfix include ssl # Common subsystems include mail::packages include mail::tls include mail::amavisd include mail::header_checks include mail::clamav include mail::spamassassin # Virtual mail system case hiera('mail::virtual', false) { true: { class { [ 'mail::virtual::params', 'mail::virtual' ]: } } default: { include mail::regular } } # Sympa mailing list manager case hiera('mail::sympa', false) { true: { class { 'mail::sympa': } $sympa_relay_domains = ", ${mail::sympa::subdomain}.${domain}" } 'disabled': { include mail::sympa::disabled } default: { } } # Schleuder mailing list manager case hiera('mail::schleuder', false) { true: { class { 'mail::schleuder': } $schleuder_relay_domains = ", ${mail::schleuder::subdomain}.${domain}" } } # Mlmmj case hiera('mail::mlmmj', false) { true: { class { 'mail::mlmmj': } $mlmmj_relay_domains = ", ${mail::mlmmj::subdomain}.${domain}" } } # Firma case hiera('mail::firma', false) { true: { class { 'mail::firma': } $firma_relay_domains = ", ${mail::firma::subdomain}.${domain}" } } $relay_domains = hiera('mail::relay_domains', '') case $relay_domains { '': { $postfix_relay_domains = "${postfix_default_relay_domains}${sympa_relay_domains}${schleuder_relay_domains}${mlmmj_relay_domains}${firma_relay_domains}" } } # Include base configuration include mail::base }