Hello, (Sent from my private Gmail address as our uni mail server isn’t fond of the CNAME for lists.exim.org)
We are using exim with a sympa mailing list server and have mostly managed to use a dynamic exim configuration for this, i.e. we do not generate a list of addresses out of sympa up front but check the validity of list email addresses on reception with require-files checking the existence of a mailing list at that address. We have not yet managed to get bounce addresses with VERP working. Those are of the form [email protected] <mailto:[email protected]> Unfortunately I have not been able to create a config in which the local_part is untainted and can be reused for a pipe transport. In broad strokes, our router and transport currently look like this: sympa_list_bounce: debug_print = "R: sympa_list_bounce for ${local_part_prefix}${local_part}@$domain" driver = accept domains = +sympa_domains local_parts = ${if bool_lax{${lookup {${if match{$local_part}{\N^.+==([^=]+)$\N} {$1}{$local_part}}} dsearch {SYMPA_EXPL/${domain_data}}}} {${local_part}}} local_part_prefix = bounce+ require_files = +SYMPA_EXPL/${lc::$domain_data}/${if match{$local_part}{\N^.+==([^=]+)$\N} {$1}{$local_part}}/config retry_use_local_part transport = sympa_bounce sympa_bounce: driver = pipe command = "SYMPA_BOUNCE ${local_part_prefix}${local_part_data}\@${domain_data}" return_fail_output user = sympa A few details: - SYMPA_BOUNCE is the executable to which the message should be passed - SYMPA+EXPL is the folder in which sympa keeps list configs in the form lists.ourdomain/thelist/config and some other files in the same folder - sympa_domains has a list of domains that are, well, domains where sympa mailing lists exist I now am a little stuck. Extending the prefix with prefix until the list name with for example local_part_prefix = *== would give me a local part that I don’t need to slice up before using it, but I don’t know how I then could ensure that the local part starts with bounce+ and it would be similarly tainted, correct? The local_parts stanza is theoretically not necessary as the validity of the address is already checked in the require_files. We however use local_parts = dsearch;SYMPA_EXPL/${domain_data} or something similar in other routers to untaint the local_part. Here though the local_parts test returns a tainted string which I guess is the reason why the transport returns with the tainted arg error? Does anyone have a suggestion how to solve this? Thank you, Felix Schäfer Admin der FSInfo der TU Dortmund -- ## subscription configuration (requires account): ## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/ ## unsubscribe (doesn't require an account): ## [email protected] ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
