]> git.donarmstrong.com Git - dsa-puppet.git/commitdiff
Add virt_aliases_regex router
authorTollef Fog Heen <tfheen@err.no>
Sun, 14 Aug 2011 19:26:05 +0000 (21:26 +0200)
committerTollef Fog Heen <tfheen@err.no>
Sun, 14 Aug 2011 19:26:05 +0000 (21:26 +0200)
This router looks for $directory/aliases.regex and uses nwildlsearch
to look for matches there.  This allows easy creation of
leader-foo@d.o aliases by putting

^leader-.* leader@debian.org

into the aliases.regex file.

modules/exim/templates/eximconf.erb

index 73e0109c0fa3b9ef38cf038971a5be5df5b5d5ac..ef324607d88ea0f1dbc8d79923540bffc865e317 100644 (file)
@@ -1184,6 +1184,31 @@ virt_aliases:
   transport_home_directory = ${extract{directory}{VDOMAINDATA}}
   user = ${extract{user}{VDOMAINDATA}}
   
+# No direct match, so try doing a regex match if there's an
+# aliases.regex
+virt_aliases_regex:
+  debug_print = "R: virt_aliases_regex for $local_part$local_part_suffix@$domain"
+  driver = redirect
+  allow_defer
+  allow_fail
+  data = ${if exists{\
+           ${extract{directory}{VDOMAINDATA}{${value}/aliases.regex}}}\
+          {${lookup{$local_part}nwildlsearch*{\
+              ${extract{directory}{VDOMAINDATA}{$value/aliases.regex}}\
+          }}}}
+  directory_transport = address_directory
+  domains = +virtual_domains
+  file_transport = ${if eq {${extract{group_writable}{VDOMAINDATA}}}{true}{address_file_group}{address_file}}
+  cannot_route_message = Unknown user
+  group = ${extract{group}{VDOMAINDATA}}
+  headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}"
+  pipe_transport = address_pipe
+  qualify_preserve_domain
+  retry_use_local_part
+  transport_current_directory = ${extract{directory}{VDOMAINDATA}}
+  transport_home_directory = ${extract{directory}{VDOMAINDATA}}
+  user = ${extract{user}{VDOMAINDATA}}
+
 userforward:
   debug_print = "R: userforward for $local_part${local_part_suffix}@$domain"
   driver = redirect