]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Update exim4 configuration hints 88/head
authorWulf Coulmann <wulf@coulmann.de>
Fri, 6 Mar 2026 08:40:23 +0000 (09:40 +0100)
committerWulf Coulmann <wulf@coulmann.de>
Fri, 6 Mar 2026 08:40:23 +0000 (09:40 +0100)
  - 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

index e4090af4edc44263a66f8279e15d78e8d9dce8c8..4a19ac94bdd01f10ea1cdc5f31ad749a55310f7d 100644 (file)
@@ -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:
 
 ```