Skip to content
Snippets Groups Projects
Commit ee4494ef authored by Karl Kornel's avatar Karl Kornel
Browse files

postfix::sender: New type

parent 62854b4c
No related branches found
No related tags found
No related merge requests found
# Many systems send emails "From" root@system-name. That causes problems when
# an email is bounced. This type is used to have Postfix change the sender
# address of an email while it is in flight. Both the From: header and the
# envelope sender are changed.
#
# Example of how to set a sender:
#
# base::postfix::sender { 'root@stanford.edu':
# ensure => 'noreply@stanford.edu'
# }
#
# Example of how to ensure there is no sender map:
#
# base::postfix::sender { 'luke': ensure => absent }
#
# Assumes that a command 'postmap hash:$file' has been defined that will
# rebuild the senders map.
define base::postfix::sender(
$ensure,
$file = '/etc/postfix/senders'
) {
$pattern = "'^${name}'"
case $ensure {
'absent': {
exec { "rm-sender-${name}":
command => "sed -i -e '/^${name}/d' ${file}",
onlyif => "grep ${pattern} ${file}",
notify => Exec["postmap hash:${file}"]
}
}
default: {
$line = "${name} ${ensure}"
exec { "add-sender-${name}":
command => "echo '${line}' >> ${file}",
unless => "grep ${pattern} ${file}",
require => Package['postfix'],
notify => Exec["postmap hash:${file}"],
}
exec { "fix-sender-${name}":
command => "sed -i -e 's/^${name}..*\$/${line}/' ${file}",
unless => "grep '^${line}\$' ${file}",
require => Exec["add-sender-${name}"],
notify => Exec["postmap hash:${file}"],
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment