X-Git-Url: https://git.distorted.org.uk/~mdw/exim-config/blobdiff_plain/7ab75d6f000cb2f27c85f9f38b597535efc5fa0b..3e96b3aeaab8463933d471111ba3531be166652b:/local.m4 diff --git a/local.m4 b/local.m4 index 52398aa..fd212a7 100644 --- a/local.m4 +++ b/local.m4 @@ -37,37 +37,9 @@ m4_define(<:FILTER_LOCALUSER:>, SECTION(global, priv)m4_dnl local_from_suffix = CONF_user_suffix_list -SECTION(global, process)m4_dnl -## Restrict users to plausible envelope sender addresses. This is -## surprisingly fiddly. What I actually want to say is that the local part -## must match ^$sender_ident(\$|-) and the domain part must match an -## appropriate domain; but writing a conjunction is rather tricky. And so we -## must burn some addresslist variables. -addresslist wrong_local = ! +user_extaddr -addresslist wrong_domain = ! *@+public -addresslist wrong_address = +wrong_local : +wrong_domain -untrusted_set_sender = : \ - ${LOOKUP_DOMAIN($sender_address_domain, - {${if and {{match_local_part {$sender_ident} {+dom_users}} \ - {match_local_part {$sender_address_local_part} \ - {+dom_locals}}} \ - {*}}})} : \ - ! +wrong_address - ###-------------------------------------------------------------------------- ### Forwarding and redirection for incoming mail. -SECTION(routers, alias)m4_dnl -## Look up the local part in the address map. -alias: - driver = redirect - allow_fail = true - allow_defer = true - user = CONF_filter_user - FILTER_TRANSPORTS - local_parts = nwildlsearch; CONF_alias_file - data = ${expand:$local_part_data} - SECTION(routers, real)m4_dnl ## A special hack to get mail to a user who has a forward file. Only for ## special effects. @@ -97,11 +69,18 @@ FILTER_ROUTER(dot_forward, SECTION(routers, deliver)m4_dnl ## Deliver mail to a user, in the absence of any other instructions. +m4_define(<:DOVECOT_HEADERS:>, <:m4_dnl + Content-Length, Status, X-IMAP, X-IMAPbase, m4_dnl + X-Keywords, X-Status, X-UID:>)m4_dnl deliver: driver = accept check_local_user transport = deliver cannot_route_message = Unknown local part + ## Strip headers used by Dovecot for its own purposes. + headers_remove = RENAME_HEADERS_REMOVE(<:DOVECOT_HEADERS:>) + headers_add = RENAME_HEADERS_ADD(<:DOVECOT_HEADERS:>) + DIVERT(null) ###----- That's all, folks --------------------------------------------------