aboutsummaryrefslogtreecommitdiffstats
path: root/modules/postfix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/postfix')
-rw-r--r--modules/postfix/manifests/init.pp9
-rw-r--r--modules/postfix/templates/main.cf6
-rw-r--r--modules/postfix/templates/sympa_aliases5
3 files changed, 20 insertions, 0 deletions
diff --git a/modules/postfix/manifests/init.pp b/modules/postfix/manifests/init.pp
index 28302f1f..3df76a63 100644
--- a/modules/postfix/manifests/init.pp
+++ b/modules/postfix/manifests/init.pp
@@ -81,6 +81,15 @@ class postfix {
content => template("postfix/group_aliases.conf"),
}
+ # TODO make it conditional to the presence of sympa
+ file { '/etc/postfix/sympa_aliases':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 644,
+ content => template("postfix/sympa_aliases"),
+ }
+
diff --git a/modules/postfix/templates/main.cf b/modules/postfix/templates/main.cf
index 8b952bcc..90486a35 100644
--- a/modules/postfix/templates/main.cf
+++ b/modules/postfix/templates/main.cf
@@ -58,12 +58,18 @@ local_recipient_maps =
# route ml to ryu ( ml being mageia-*@mageia )
fallback_transport_maps = regexp:/etc/postfix/transport_regexp
+# needed by sympa to handle bounce, according to the doc
+recipient_delimiter = +
+
alias_maps = hash:/etc/postfix/aliases
virtual_alias_maps = ldap:/etc/postfix/ldap_aliases.conf
ldap:/etc/postfix/group_aliases.conf
hash:/etc/postfix/virtual_aliases
+<%- if classes.include?('sympa::server') -%>
+ regexp:/etc/postfix/sympa_aliases
+<%- end -%>
<%- end -%>
diff --git a/modules/postfix/templates/sympa_aliases b/modules/postfix/templates/sympa_aliases
new file mode 100644
index 00000000..14d01daf
--- /dev/null
+++ b/modules/postfix/templates/sympa_aliases
@@ -0,0 +1,5 @@
+# everything is handled with transports in postfix,
+# but according to http://www.sympa.org/faq/postfix, we also need this one
+<% escaped_domain = ( 'ml.' + domain ).sub('.','\.') %>
+/^(.*)-owner\@<%= escaped_domain %>$/ $1+owner@ml.<%= domain %>
+