diff options
Diffstat (limited to 'manifests/system.pp')
-rw-r--r-- | manifests/system.pp | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/manifests/system.pp b/manifests/system.pp index 29bac39..4f8f20c 100644 --- a/manifests/system.pp +++ b/manifests/system.pp @@ -1,7 +1,8 @@ class mail::system { - $postfix_smtp_listen = "all" - $postfix_use_amavisd = "yes" - $postfix_mydestination = '$myhostname, localhost.$mydomain, localhost' + $postfix_smtp_listen = "all" + $postfix_use_amavisd = "yes" + $postfix_use_dovecot_lda = "yes" + $postfix_mydestination = '$myhostname, localhost.$mydomain, localhost' case $postfix_mynetworks { '': { $postfix_mynetworks = "127.0.0.0/8" } @@ -46,14 +47,19 @@ class mail::system { # 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}'; - "virtual_mailbox_base": value => '/var/mail/virtual'; + "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}'; + "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": @@ -70,9 +76,24 @@ class mail::system { # Virtual mailboxes file { '/var/mail/virtual': - ensure => directory, - owner => root, - group => mail, - mode => 0770, + 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'], } } |