smtpd: Add support for custom config file
This commit is contained in:
parent
6444c95460
commit
a509469be1
1 changed files with 32 additions and 19 deletions
|
@ -18,6 +18,9 @@
|
||||||
# $maildir:
|
# $maildir:
|
||||||
# Directory in user home for INBOX. Defaults to "Mail".
|
# Directory in user home for INBOX. Defaults to "Mail".
|
||||||
#
|
#
|
||||||
|
# $config:
|
||||||
|
# Path to custom configuration file.
|
||||||
|
#
|
||||||
# $custom:
|
# $custom:
|
||||||
# Array of custom accept/reject rules.
|
# Array of custom accept/reject rules.
|
||||||
#
|
#
|
||||||
|
@ -39,6 +42,7 @@ class smtpd(
|
||||||
$listen=false,
|
$listen=false,
|
||||||
$gecos=true,
|
$gecos=true,
|
||||||
$maildir="Mail",
|
$maildir="Mail",
|
||||||
|
$config=undef,
|
||||||
$custom=undef,
|
$custom=undef,
|
||||||
$domains=undef,
|
$domains=undef,
|
||||||
$virtuals=undef,
|
$virtuals=undef,
|
||||||
|
@ -130,6 +134,15 @@ class smtpd(
|
||||||
|
|
||||||
include ssl
|
include ssl
|
||||||
|
|
||||||
|
if $config {
|
||||||
|
$content = undef
|
||||||
|
} else {
|
||||||
|
$content = $listen ? {
|
||||||
|
true => template("smtpd/server.conf.erb"),
|
||||||
|
default => template("smtpd/client.conf.erb"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
file { "${confdir}/smtpd.conf":
|
file { "${confdir}/smtpd.conf":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0644",
|
mode => "0644",
|
||||||
|
@ -138,10 +151,8 @@ class smtpd(
|
||||||
"openbsd" => "wheel",
|
"openbsd" => "wheel",
|
||||||
default => "root",
|
default => "root",
|
||||||
},
|
},
|
||||||
content => $listen ? {
|
source => $config,
|
||||||
true => template("smtpd/server.conf.erb"),
|
content => $content,
|
||||||
default => template("smtpd/client.conf.erb"),
|
|
||||||
},
|
|
||||||
notify => Service[$service],
|
notify => Service[$service],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,21 +165,7 @@ class smtpd(
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if $listen == true {
|
if $listen == true or $config {
|
||||||
include procmail
|
|
||||||
|
|
||||||
procmail::rc { "00-default.rc":
|
|
||||||
content => "MAILDIR=\$HOME/${maildir}\nDEFAULT=\$MAILDIR/INBOX\n",
|
|
||||||
}
|
|
||||||
|
|
||||||
file { [ "/root/${maildir}", "/etc/skel/${maildir}" ]:
|
|
||||||
ensure => directory,
|
|
||||||
mode => "0700",
|
|
||||||
owner => "root",
|
|
||||||
group => "wheel",
|
|
||||||
before => Service["smtpd"],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "${ssl::private}/smtpd.key":
|
file { "${ssl::private}/smtpd.key":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0600",
|
mode => "0600",
|
||||||
|
@ -185,6 +182,22 @@ class smtpd(
|
||||||
source => $ssl_cert,
|
source => $ssl_cert,
|
||||||
notify => Service["smtpd"],
|
notify => Service["smtpd"],
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $listen == true {
|
||||||
|
include procmail
|
||||||
|
|
||||||
|
procmail::rc { "00-default.rc":
|
||||||
|
content => "MAILDIR=\$HOME/${maildir}\nDEFAULT=\$MAILDIR/INBOX\n",
|
||||||
|
}
|
||||||
|
|
||||||
|
file { [ "/root/${maildir}", "/etc/skel/${maildir}" ]:
|
||||||
|
ensure => directory,
|
||||||
|
mode => "0700",
|
||||||
|
owner => "root",
|
||||||
|
group => "wheel",
|
||||||
|
before => Service["smtpd"],
|
||||||
|
}
|
||||||
|
|
||||||
if $gecos == true {
|
if $gecos == true {
|
||||||
file { "/usr/local/sbin/generate-smtpd-gecos.sh":
|
file { "/usr/local/sbin/generate-smtpd-gecos.sh":
|
||||||
|
|
Loading…
Add table
Reference in a new issue