On Wed, 20 Mar 2024, Marco van Tol via Exim-users wrote:

Hi there,

I apologise if this has been handled before.  I wasn’t sure what a quick path 
in the FAQ would be to the answer for this.

I have a domain for which different local_parts need to be delivered to 
different SMTP servers.
The decision depends on whether "host-a" accepts the local_part, and otherwise 
it needs to be our local SMTP server.


This works great, as long as you have one recipient per connection.

But, when I tested what happened with 2 “RCPT TO” commands in a single 
connection, one for host-a, and one for local, I found out the contents of the 
acl_m_hosta is persistent between “RCPT TO” calls.

Digging a bit further into this I found out that the router finds the variable 
in a state where the last verify left it, and all addresses would be handled by 
the same router.

My question is this:
Is there an easy way to decide per recipient which router will be used, based 
on the results of a callout/verify?
Or is there a different way to establish the same result?

You are not using routers the way they are intended.

The idea is that *for each* address, each router is tried in turn until
one of them accepts the message, or specifies that it should be bounced.
See the Exim Spec, section 3.8 - Processing an address for delivery.

That should get you most of what you need.

--
Andrew C. Aitchison                      Kendal, UK
                   [email protected]

--
## 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/

Reply via email to