From 690feb17265dc589f9b5275834dd76e251b47625 Mon Sep 17 00:00:00 2001 From: Wulf Coulmann Date: Fri, 6 Mar 2026 09:40:23 +0100 Subject: [PATCH] Update exim4 configuration hints - add debug output to router and transport - lookup changes according exim4 >= 4.94 taind behaver (Errors like "Tainted filename for search") - add router condition for setups with more than one domain (you need uniq local_parts over all your lists, but we do not want to match the transport on local_part@wrong.domain) hint - VERP config is not changed/updated, may not work --- README.exim4.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.exim4.md b/README.exim4.md index e4090af4..4a19ac94 100644 --- a/README.exim4.md +++ b/README.exim4.md @@ -15,6 +15,8 @@ Notes: lists there are. Note that the owner of the mlmmj spool must still be the mlmmj user (and this user must have at least x rights to the directories below). + *alternative you can run mlmmj with the exim4 user (on Debian/Devuan it is + "Debian-exim") - Existence of mailing lists is automatically checked ($listdir) and you don't need to put anything into your aliases file - If you want VERP to be done by your MTA, follow the instructions below and @@ -47,9 +49,11 @@ beginning): ``` mlmmj_router: + debug_print = "R: mlmmj_router for $local_part@$domain" driver = accept domains = +mlmmj_domains require_files = MLMMJ_HOME/${lc::$local_part} + condition = ${lookup{$local_part@$domain} lsearch*,ret=key{${lookup {$local_part} dsearch,ret=full {MLMMJ_HOME}}/control/listaddress}} # Use this instead, if you don't want to give Exim rx rights to mlmmj spool. # Exim will then spawn a new process running under the UID of "mlmmj". #require_files = mlmmj:MLMMJ_HOME/${lc::$local_part} @@ -60,7 +64,6 @@ mlmmj_router: transport = mlmmj_transport ``` - If you want VERP to be done by your MTA, also add this: ``` @@ -91,15 +94,20 @@ don't use the default location!): ``` mlmmj_transport: + debug_print = "T: mlmmj_transport for $local_part $local_part_data@$domain" driver = pipe return_path_add user = mlmmj group = mlmmj + # if you use the exim4 user (Debian) + #user = Debian-exim + #group = Debian-exim home_directory = MLMMJ_HOME current_directory = MLMMJ_HOME - command = /usr/local/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part} + command = /usr/bin/mlmmj-receive -F -L "${lookup {$local_part} dsearch,ret=full {MLMMJ_HOME}}" ``` + If you want VERP to be done by your MTA, also add this: ``` -- 2.47.3