On Wed, 7 Aug 2024, Cam Ellison via Exim-users wrote:
For my sins, I built and continue to operate a website for a local adult
football association. Email services are provided via Exim and Dovecot for a
few positions, but most email is sent by the website itself.
To regularise access to email, I recently decided to move the users to vmail
and dispense with having home directories, etc. Only one internal
administrative user remains as a true local user. The necessary information
for the others resides in a MySQL database which is also used by Dovecot.
In the process of making the transition, I have run afoul of the need to
sanitise $local_part and $domain. The result is that it is no longer possible
to send or receive emails involving those accounts. Users can log in and read
mail.
The exim configuration is monolithic: /etc/exim4/exim4.conf. I've been using
exim for the best part of 30 years, and cribbed the existing file from one of
my other sites. It has worked fine until now.
Here are the router, transport, and authenticator settings. Included at the
top is a set of macros that I found on a website during my frantic Google
searches. The actual display of $local_part and $domain varies because I have
been trying everything: this is just the current mess. There are no error
messages on starting exim.
Macros:
DETAINTFILE = /etc/exim4/detaint
BADCHARS = \N[^A-Za-z0-9_.-]+\N
SAFELOCALPART = ${lookup{${sg{$local_part}{BADCHARS}{_}}}
lsearch*,ret=key{DETAINTFILE}}
SAFEDOMAIN = ${lookup{${sg{$domain}{BADCHARS}{_}}}
lsearch*,ret=key{DETAINTFILE}}
I think looking up local_parts and $local_part_data
in the exim spec.txt will help you.
You may need an appropriate ACL too -
possibly acl_check_rcpt or acl_smtp_rcpt
--
Andrew C. Aitchison Kendal, UK
and...@aitchison.me.uk
--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscr...@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/