--- /dev/null
+class mail::base {
+ # Postfix configuration
+ postfix::config {
+ "mydomain": value => "$domain";
+ "myhostname": value => "$fqdn";
+ "mydestination": value => "$postfix_mydestination";
+ "mynetworks": value => "$postfix_mynetworks";
+ "relay_domains": value => '$mydestination';
+ "transport_maps": value => "hash:/etc/postfix/transport";
+ "mailbox_command": value => '/usr/bin/maildrop -d ${USER}';
+ "virtual_mailbox_base": value => '/var/mail/virtual';
+ "virtual_uid_maps": value => 'static:5000';
+ "virtual_gid_maps": value => 'static:5000';
+ "virtual_transport": value => 'dovecot';
+ "dovecot_destination_recipient_limit": value => '1';
+ "recipient_delimiter": value => '+';
+ }
+
+ postfix::hash { "/etc/postfix/virtual":
+ ensure => present,
+ }
+
+ postfix::hash { "/etc/postfix/transport":
+ ensure => present,
+ }
+
+ # Recipient restrictions
+ postfix::config { "smtpd_recipient_restrictions":
+ value => 'permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client psbl.surriel.com, check_policy_service inet:127.0.0.1:60000' }
+
+ # Virtual mailboxes
+ file { '/var/mail/virtual':
+ ensure => directory,
+ owner => vmail,
+ group => vmail,
+ mode => 0750,
+ require => User['vmail'],
+ }
+
+ group { "vmail":
+ ensure => present,
+ gid => 5000,
+ }
+
+ user { "vmail":
+ ensure => present,
+ uid => 5000,
+ gid => "vmail",
+ password => "*",
+ home => '/var/mail/virtual',
+ require => Group['vmail'],
+ }
+}
# Subsystems
include mail::packages
+ include mail::base
include mail::sasl
include mail::tls
include mail::dovecot
include mail::postfixadmin
include mail::web
- # Mailing list manager
+ # Sympa mailing list manager
case $mail_sympa {
true: {
}
}
- # Postfix configuration
- postfix::config {
- "mydomain": value => "$domain";
- "myhostname": value => "$fqdn";
- "mydestination": value => "$postfix_mydestination";
- "mynetworks": value => "$postfix_mynetworks";
- "relay_domains": value => '$mydestination';
- "transport_maps": value => "hash:/etc/postfix/transport";
- "mailbox_command": value => '/usr/bin/maildrop -d ${USER}';
- "virtual_mailbox_base": value => '/var/mail/virtual';
- "virtual_uid_maps": value => 'static:5000';
- "virtual_gid_maps": value => 'static:5000';
- "virtual_transport": value => 'dovecot';
- "dovecot_destination_recipient_limit": value => '1';
- "recipient_delimiter": value => '+';
- }
-
- postfix::hash { "/etc/postfix/virtual":
- ensure => present,
- }
-
- postfix::hash { "/etc/postfix/transport":
- ensure => present,
- }
-
- # Recipient restrictions
- postfix::config { "smtpd_recipient_restrictions":
- value => 'permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client psbl.surriel.com, check_policy_service inet:127.0.0.1:60000' }
-
- # Virtual mailboxes
- file { '/var/mail/virtual':
- ensure => directory,
- owner => vmail,
- group => vmail,
- mode => 0750,
- require => User['vmail'],
- }
-
- group { "vmail":
- ensure => present,
- gid => 5000,
- }
-
- user { "vmail":
- ensure => present,
- uid => 5000,
- gid => "vmail",
- password => "*",
- home => '/var/mail/virtual',
- require => Group['vmail'],
+ # Schleuder mailing list manager
+ case $mail_schleuder {
+ true: {
+ include mail::packages::schleuder
+ }
}
}