+# add an exim virtualdomain entry on this host
+#
+# @param mail_user User to run the virtual email domain's pipe jobs and deliveries as
+# @param mail_group Group to run the virtual email domain's pipe jobs and deliveries as
+# @param owner User to own the directories and files
+# @param group Group to own the directories and files
+# @param domain email domain (defaults to $name)
+# @param maildir Mail directory, usually and defaults to /srv/$name/mail
define exim::vdomain (
- $alias_file,
- $user,
- $group,
- $maildir,
- $domain=$name,
+ String $domain = $name,
+ String $maildir = "/srv/${name}/mail",
+ String $owner = 'root',
+ String $group = 'root',
+ String $mail_user = $owner,
+ String $mail_group = $group,
) {
- include exim::vdomain::setup
+ file { $maildir:
+ ensure => directory,
+ mode => '2755',
+ owner => $owner,
+ group => $group,
+ }
- file { $maildir:
- ensure => directory,
- mode => '0755',
- owner => root,
- group => root
- }
+ file { [
+ "${maildir}/aliases",
+ "${maildir}/callout_users",
+ "${maildir}/grey_users",
+ "${maildir}/neversenders",
+ "${maildir}/rbllist",
+ "${maildir}/rhsbllist",
+ ] :
+ mode => '0644',
+ owner => $owner,
+ group => $group,
+ }
- file { "${maildir}/mail":
- ensure => directory,
- mode => '0755',
- owner => root,
- group => root
- }
-
- file { "${maildir}/mail/aliases":
- source => $alias_file,
- mode => '0644',
- owner => root,
- group => root
- }
-
- concat::fragment { "virtualdomain_${domain}":
- target => '/etc/exim4/virtualdomains',
- content => "${domain}: user=${user} group=${group} directory=${maildir}\n",
- }
+ concat::fragment { "virtualdomain_${domain}":
+ target => '/etc/exim4/virtualdomains',
+ content => "${domain}: user=${mail_user} group=${mail_group} directory=${maildir}\n",
+ }
}