init.pp 931 Bytes

class postfix (
  $admin_email,
  $server_name=$fqdn,
  $mailbox_limit=0 # Zero means no limit
) {

  $postfix_preseed = '/var/cache/debconf/postfix.preseed'
  $preseed_cmd = "debconf-set-selections $postfix_preseed"

  file { $postfix_preseed:
    ensure  => present,
    content => template('postfix/postfix.preseed.erb'),
  }

  exec { $preseed_cmd:
    path        => '/usr/bin/',
    refreshonly => true,
    subscribe   => File[$postfix_preseed],
  }

  package { 'postfix':
    ensure       => installed,
    require      => File[$postfix_preseed],
    responsefile => $postfix_preseed,
  }

  package { 'mailutils':
    ensure => installed,
  }

  service {'postfix':
    ensure    => running,
    enable    => true,
    hasstatus => false,
    stop      => 'invoke-rc.d postfix stop',
    start     => 'invoke-rc.d postfix start',
    restart   => 'invoke-rc.d postfix restart',
    require   => Package['postfix']
  }
}