summaryrefslogtreecommitdiff
path: root/manifests/system.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/system.pp')
-rw-r--r--manifests/system.pp49
1 files changed, 49 insertions, 0 deletions
diff --git a/manifests/system.pp b/manifests/system.pp
new file mode 100644
index 0000000..8194bea
--- /dev/null
+++ b/manifests/system.pp
@@ -0,0 +1,49 @@
+class mail::system {
+ $postfix_smtp_listen = "all"
+ $postfix_use_amavisd = "yes"
+ $postfix_mydestination = '$myhostname, $mydomain, localhost.$mydomain, localhost'
+
+ case $postfix_mynetworks {
+ '': { $postfix_mynetworks = "127.0.0.0/8" }
+ }
+
+ # Module requirements
+ include postfix
+ include database
+ include ssl::mail
+
+ # Subsystems
+ include mail::packages
+ include mail::sasl
+ include mail::tls
+
+ # TODO
+ #include mail::dovecot
+ #include mail::postfixadmin
+ #include mail::header_checks
+ #include mail::amavisd
+
+ # Postfix configuration
+ postfix::config {
+ "mydomain": value => "$domain";
+ "myhostname": value => "$fqdn";
+ "mydestination": value => "$postfix_mydestination";
+ "mynetworks": value => "$postfix_mynetworks";
+ "relay_domains": value => "$domain";
+ "transport_maps": value => "hash:/etc/postfix/transport";
+ "mailbox_command": value => '/usr/bin/maildrop -d ${USER}';
+ "mailbox_command": value => '/var/mail/virtual';
+ }
+
+ 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' }
+}