...
 
Commits (4)
......@@ -45,8 +45,12 @@
# From /var/lib/misc / UD:
#
# mail-forward.cdb - aliases for @d.o
# user-forward.cdb - aliases for @thishost.d.o
# mail-forward.db - aliases for @d.o
# user-forward.db - aliases for @thishost.d.o
#
# Note that the BDB files generated by ud-ldap use keys that are not
# null-terminated, so Exim needs to use the "dbmnz" lookup type, rather
# than "dbm".
# Exim's wildcard mechanism is a bit odd in that to say "any address in
# debian.org including debian.org" you must use two patterns,
......@@ -302,6 +306,7 @@ GREYLIST_LOCAL_PARTS = ${if match_domain{$domain}{+virtual_domains}\
{${lookup{$local_part}lsearch*{${extract{directory}{VDOMAINDATA}{${value}/grey_users}}}{$local_part}{}}}{}}}\
{${lookup{$local_part}lsearch{/etc/exim4/grey_users}{$local_part}{}}}} : \
${lookup{$local_part}lsearch{/var/lib/misc/$primary_hostname/mail-greylist}{$local_part}{}}
HAS_DEFAULT_OPTIONS = ${if eq{${lookup{$local_part}dbmnz{/var/lib/misc/$primary_hostname/default-mail-options.db}{$value}{TRUE}}}{TRUE}}
<%- if @is_rtmaster -%>
# This subject rewrite is embedded in double-quoted strings. As such, some of
# the items need more escaping than usual, otherwise \N becomes simply "N" and
......@@ -414,27 +419,27 @@ acl_getprofile:
accept condition = ${if !eq {$acl_m_rprf}{}}
warn domains = +virtual_domains
condition = ${if exists {${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.cdb}}}}
condition = ${if eq{${lookup{$local_part}cdb{${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.cdb}}}{$value}{}}}{markup}}
condition = ${if exists {${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.db}}}}
condition = ${if eq{${lookup{$local_part}dbmnz{${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.db}}}{$value}{}}}{markup}}
set acl_m_rprf = markup
accept condition = ${if !eq {$acl_m_rprf}{}}
warn domains = +virtual_domains
condition = ${if exists {${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.cdb}}}}
condition = ${if eq{${lookup{$local_part}cdb{${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.cdb}}}{$value}{}}}{blackhole}}
condition = ${if exists {${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.db}}}}
condition = ${if eq{${lookup{$local_part}dbmnz{${extract{directory}{VDOMAINDATA}{${value}/contentinspectionaction.db}}}{$value}{}}}{blackhole}}
set acl_m_rprf = blackhole
accept condition = ${if !eq {$acl_m_rprf}{}}
warn domains = +local_domains
condition = ${if eq{${lookup{$local_part}cdb{/var/lib/misc/${primary_hostname}/mail-contentinspectionaction.cdb}{$value}{}}}{markup}}
condition = ${if eq{${lookup{$local_part}dbmnz{/var/lib/misc/${primary_hostname}/mail-contentinspectionaction.db}{$value}{}}}{markup}}
set acl_m_rprf = markup
accept condition = ${if !eq {$acl_m_rprf}{}}
warn domains = +local_domains
condition = ${if eq{${lookup{$local_part}cdb{/var/lib/misc/${primary_hostname}/mail-contentinspectionaction.cdb}{$value}{}}}{blackhole}}
condition = ${if eq{${lookup{$local_part}dbmnz{/var/lib/misc/${primary_hostname}/mail-contentinspectionaction.db}{$value}{}}}{blackhole}}
set acl_m_rprf = blackhole
accept condition = ${if !eq {$acl_m_rprf}{}}
......@@ -769,21 +774,14 @@ check_recipient:
<%- end -%>
<%- if @is_rtmaster -%>
warn condition = ${if eq{$acl_m_prf}{RTMail}}
set acl_m12 = ${if def:acl_m12 {$acl_m12} {${if or{{match{$local_part}{\N[^+]+\+\d+\N}}{match{$local_part}{\N[^+]+\+new\N}}{match{$local_part}{3520}}{match{$local_part}{3645}}} {RTMailRecipientHasSubaddress}}}}
# temporary hack because weasel screwed up and gave people an rt-3520@ address, which doesn't really work normally. and rt-3645
#set acl_m12 = ${if def:acl_m12 {$acl_m12} {${if or{{match{$local_part}{\N[^+]+\+\d+\N}}{match{$local_part}{\N[^+]+\+new\N}}} {RTMailRecipientHasSubaddress}}}}
set acl_m12 = ${if def:acl_m12 {$acl_m12} {${if or{{match{$local_part}{\N[^+]+\+\d+\N}}{match{$local_part}{\N[^+]+\+new\N}}} {RTMailRecipientHasSubaddress}}}}
<%- end -%>
<%- if has_variable?("greylistd") && @greylistd -%>
defer
message = $sender_host_address is not yet authorized to deliver mail from <$sender_address> to <$local_part@$domain>.
log_message = greylisted.
local_parts = ${if match_domain{$domain}{+virtual_domains}\
{${if exists {${extract{directory}{VDOMAINDATA}{${value}/grey_users}}}\
{${lookup{$local_part}lsearch*{${extract{directory}{VDOMAINDATA}{${value}/grey_users}}}{$local_part}{}}}{}}}\
{${lookup{$local_part}lsearch{/etc/exim4/grey_users}{$local_part}{}} : \
${lookup{$local_part}lsearch{/var/lib/misc/$primary_hostname/mail-greylist}{$local_part}{}}}}
local_parts = GREYLIST_LOCAL_PARTS
!senders = :
!hosts = : +debianhosts : WHITELIST : \
${if exists {/etc/greylistd/whitelist-hosts}\
......@@ -1082,8 +1080,8 @@ check_message:
begin rewrite
\N^buildd_(.*)@fasolo\.debian\.org$\N buildd_$1@buildd.debian.org T
*@debian.org ${lookup{$1}cdb{/var/lib/misc/${primary_hostname}/mail-forward.cdb}{$value}fail} T
*@people.debian.org ${lookup{$1}cdb{/var/lib/misc/${primary_hostname}/mail-forward.cdb}{$value}fail} T
*@debian.org ${lookup{$1}dbmnz{/var/lib/misc/${primary_hostname}/mail-forward.db}{$value}fail} T
*@people.debian.org ${lookup{$1}dbmnz{/var/lib/misc/${primary_hostname}/mail-forward.db}{$value}fail} T
#*@${primary_hostname} "${if exists{/etc/exim4/email-addresses}{${lookup{$1}lsearch{/etc/exim4/email-addresses}{$value}fail}}fail}" fFs
......@@ -1338,9 +1336,9 @@ ldap_aliases:
driver = redirect
allow_defer
allow_fail
data = ${if exists{/var/lib/misc/$primary_hostname/user-forward.cdb}\
{${lookup{$local_part}cdb\
{/var/lib/misc/$primary_hostname/user-forward.cdb}}}}
data = ${if exists{/var/lib/misc/$primary_hostname/user-forward.db}\
{${lookup{$local_part}dbmnz\
{/var/lib/misc/$primary_hostname/user-forward.db}}}}
domains = +local_domains
file_transport = address_file
local_part_suffix = -*
......@@ -1497,17 +1495,17 @@ virt_users:
group = ${extract{group}{VDOMAINDATA}}
# Manually construct the forwarding address, preserving the
# local_part_suffix if the remote host is master.
data = ${if and {{exists{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}\
{! eq {${lookup{$local_part}cdb\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}}\
data = ${if and {{exists{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}\
{! eq {${lookup{$local_part}dbmnz\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}\
{}}}\
{${local_part:${lookup{$local_part}cdb\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}}\
${if eq {${domain:${lookup{$local_part}cdb\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}}}{master.debian.org}{$local_part_suffix} {}}\
{${local_part:${lookup{$local_part}dbmnz\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}\
${if eq {${domain:${lookup{$local_part}dbmnz\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}}{master.debian.org}{$local_part_suffix} {}}\
@\
${domain:${lookup{$local_part}cdb\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.cdb}}}}}}}
${domain:${lookup{$local_part}dbmnz\
{${extract{directory}{VDOMAINDATA}{${value}/mail-forward.db}}}}}}}
domains = +virtual_domains
file_transport = address_file
headers_add = "Delivered-To: ${local_part}${local_part_suffix}@${domain}"
......