X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fexim%2Ftemplates%2Feximconf.erb;h=ca1210f516b974f75e59e3fd3e701c9e8d092442;hb=1f7db44376cd54cc38835d008acb05d64dbb06dc;hp=3bd6f90637e5e2a9b00db824794d9ebebf000fa3;hpb=803bc5a6dbce4666c97569adc3aac7ffec549408;p=mirror%2Fdsa-puppet.git diff --git a/modules/exim/templates/eximconf.erb b/modules/exim/templates/eximconf.erb index 3bd6f9063..ca1210f51 100644 --- a/modules/exim/templates/eximconf.erb +++ b/modules/exim/templates/eximconf.erb @@ -1211,11 +1211,13 @@ ldap_aliases: driver = redirect allow_defer allow_fail - data = ${if exists{/var/lib/misc/$primary_hostname/mail-forward.cdb}\ + data = ${if exists{/var/lib/misc/$primary_hostname/user-forward.cdb}\ {${lookup{$local_part}cdb\ - {/var/lib/misc/$primary_hostname/mail-forward.cdb}}}} + {/var/lib/misc/$primary_hostname/user-forward.cdb}}}} domains = +local_domains file_transport = address_file + local_part_suffix = -* + local_part_suffix_optional headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}" pipe_transport = address_pipe retry_use_local_part @@ -1226,6 +1228,8 @@ localuser: driver = accept check_local_user domains = +local_domains + local_part_suffix = -* + local_part_suffix_optional headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}" # Disable if the user has never logged in require_files = $home @@ -1254,32 +1258,6 @@ packages: no_more <%- end -%> -<%= -out = "" -if nodeinfo['bugsmaster'] or nodeinfo['bugsmx'] - domain = 'bugs.debian.org' - if nodeinfo['bugsmaster'] - domain = 'bugs-master.debian.org' - end - out = ' -# This router delivers for bugs.d.o -bugs: - debug_print = "R: bugs for $local_part@$domain" - driver = accept - transport = bugs_pipe - domains = ' + domain + ' - cannot_route_message = Unknown or archived bug - require_files = /org/bugs.debian.org/mail/run-procmail - no_more - local_parts = ${if match\ - {$local_part}\ - {\N^(\d+)(\d{2})(?:-(?:(?:submit|maintonly|quiet|forwarded|done|close|request|submitter)|(?:unsubscribe|ignore|help|(?:sub(?:scribe|help|yes|approve|reject))|unsubyes|bounce|probe|approve|reject|setlistyes|setlistsilentyes).*))?$\N}\ - {${if exists{/org/bugs.debian.org/spool/db-h/$2/$1$2.summary}\ - {$local_part}fail}}fail} -' -end -out -%> <%- if nodeinfo['rtmaster'] -%> # This router delivers for rt.d.o rt_force_new_verbose: @@ -1336,6 +1314,8 @@ virt_direct_verify: modemask = 002 directory_transport = address_directory domains = +virtual_domains + local_part_suffix = -* + local_part_suffix_optional file = $home/.forward-\ ${if exists {${home}/.forward-${local_part}}{${local_part}}\ {default}} @@ -1388,6 +1368,8 @@ virt_direct: group = ${extract{group}{VDOMAINDATA}} headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}" modemask = 002 + local_part_suffix = -* + local_part_suffix_optional pipe_transport = address_pipe reply_transport = address_reply retry_use_local_part @@ -1397,6 +1379,54 @@ virt_direct: user = ${extract{user}{VDOMAINDATA}} #debug_print = .forward-${if exists {${home}/.forward-${local_part}} {${local_part}} {default}} +# This router delivers to the LDAP generated mail-forward file. +# It's only really useful for debian.org +virt_users: + debug_print = "R: virt_users for $local_part@$domain" + driver = redirect + allow_defer + allow_fail + router_home_directory = ${extract{directory}{VDOMAINDATA}} + transport_current_directory = ${extract{directory}{VDOMAINDATA}} + user = ${extract{user}{VDOMAINDATA}} + group = ${extract{group}{VDOMAINDATA}} + data = ${if exists{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}\ + {${lookup{$local_part}cdb\ + {${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}}} + domains = +virtual_domains + file_transport = address_file + headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}" + pipe_transport = address_pipe + local_part_suffix = -* + local_part_suffix_optional + retry_use_local_part + +<%= +out = "" +if nodeinfo['bugsmaster'] or nodeinfo['bugsmx'] + domain = 'bugs.debian.org' + if nodeinfo['bugsmaster'] + domain = 'bugs-master.debian.org' + end + out = ' +# This router delivers for bugs.d.o +bugs: + debug_print = "R: bugs for $local_part@$domain" + driver = accept + transport = bugs_pipe + domains = ' + domain + ' + cannot_route_message = Unknown or archived bug + require_files = /org/bugs.debian.org/mail/run-procmail + no_more + local_parts = ${if match\ + {$local_part}\ + {\N^(\d+)(\d{2})(?:-(?:(?:submit|maintonly|quiet|forwarded|done|close|request|submitter)|(?:unsubscribe|ignore|help|(?:sub(?:scribe|help|yes|approve|reject))|unsubyes|bounce|probe|approve|reject|setlistyes|setlistsilentyes).*))?$\N}\ + {${if exists{/org/bugs.debian.org/spool/db-h/$2/$1$2.summary}\ + {$local_part}fail}}fail} +' +end +out +%> ###################################################################### # TRANSPORTS CONFIGURATION # ######################################################################