chiark / gitweb /
local.m4: Rename headers with special significance to Dovecot.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 4 May 2015 10:01:14 +0000 (11:01 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 4 May 2015 10:12:42 +0000 (11:12 +0100)
local.m4

index f3b5e9f0e88f701eb65043633fc731893b59da58..582e1ce482a888a5e2367cff469f9fed63454c11 100644 (file)
--- a/local.m4
+++ b/local.m4
@@ -101,11 +101,20 @@ FILTER_ROUTER(dot_forward,
 
 SECTION(routers, deliver)m4_dnl
 ## Deliver mail to a user, in the absence of any other instructions.
+m4_define(<:STRIP_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 = CLRSEP<::>FOREACH(<:SEP(:)$1:>, <:STRIP_HEADERS:>)
+       headers_add = CLRSEP<::>FOREACH(<:\
+               ${if def:h_$1:{X-Distorted-Renamed-$1: $h_$1:\n}}:>,
+               <:STRIP_HEADERS:>)
+
 DIVERT(null)
 ###----- That's all, folks --------------------------------------------------