> sql_user:
> driver = accept
> domains = +local_domains : +virtual_domains
> local_parts = lsearch; /etc/exim4/locale <--- hint01 --->
On 09/12/2021 19:16, Alexander Nagel via Exim-users wrote:
> There is only one line with my name.
Have a look at the definition of lsearch:
http://exim.org/exim-html-current/doc/html/spec_html/ch-file_and_database_lookups.html#SECTsinglekeylookups
Specifically: a record in an lsearch DB file consists of a key and some data.
The key is what you search for. The search can find one, or not - and this
truth value is what the "local_parts=" condition on your router uses to
decide whether to proceed or not. The lookup here uses the $local_part
associated with the message, implicitly. Now, what about the filling
in of $local_part_data ? Well, by default, that gets the data from the
record that the search hit.
You have no data. So that's empty - which explains you finding that
$local_part_data remains empty, despite having triggered all the router
conditions and arrived in your transport.
You could double up on the info that is on each line, so that there is data.
Or you could use an option on the lookup that causes the key to be returned
rather than the data:
http://exim.org/exim-html-current/doc/html/spec_html/ch-file_and_database_lookups.html#SECID61
> 2021-12-10 15:57:08 1mvhKY-000j01-QJ == alexander@??? R=sql_user T=sql_user_local_delivery defer (-1): Tainted '/var/mail/vhosts/example.de/alexander/Maildir' (file or directory name for sql_user_local_delivery transport) not permitted
Think about what portion of that path could be tainted.
Think about why you used $local_part_data, and what else you
might need to use.
Follow up the concept-index entries on de-tainting.
--
Cheers,
Jeremy