[Exim] multiple recipients & plus addressing on mutiple doma…

Top Page
Delete this message
Reply to this message
Author: TN
Date:  
To: exim-users
Subject: [Exim] multiple recipients & plus addressing on mutiple domain server using lmtp
My head is swimming a bit from looking at reams of debug, so bare with me.

I have an exim4.3+cyrus server. The server hosts multiple domains &
virtual domains in cyrus. User account names are the same as their email
addresses (user@domain). Plus addressing has been configured and works
APART from the following fairly unique scenario.

IF a user on one of the hosted domains, sends an email to multiple
recipients, all of whose domains are on the same server, then the plus
addressing fails. It fails it seems in the transport, because it somehow
nulls the $local_part, $local_part_suffix & $domain vars in the
transport. So therefore, $authenticated _sender ends up with null@null
in it, as opposed to something like tnuro@??? is what it
should end up with, so as to authenticate as tnuro@??? in order
to have access rights to place the email in the +folder.

Note that this ONLY happens if there are multiple recipients - if
there's only 1 recipient, then plus addressing works as expected, from
both externally hosted domains and also locally hosted domains.

IF the exact same multiple recipients are sent mail using plus
addressing from an external domain (not one hosted on the server) then
it works correctly.

IF a user on a locally hosted domain sends an email to 2 recipients, and
one recipient is externally hosted, and the other is locally hosted and
is the target for the +addressing, then this also works correctly.




I know I should include some detailed debug here, but I thought I'd send
this as a starting point to see if anyone has seen this before.
However, here's a snippet from the router config, transport config &
transport debug:

router:

local_user_cyrus:
debug_print = "R: local_user for $local_part@$domain"
driver = accept
local_parts = ! root
local_part_suffix = +*
local_part_suffix_optional
transport = local_delivery_cyrus

transport:

local_delivery_cyrus:
driver = smtp
protocol = lmtp
authenticated_sender = $local_part@$domain
debug_print = "T: ***TTN*** local_delivery_cyrus
$local_part,$local_part_suffix@$domain , $authenticated_sender"
rcpt_include_affixes
hosts = localhost
hosts_try_auth = localhost
allow_localhost


routing debug:
3391 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 3391 After routing:
 3391   Local deliveries:
 3391   Remote deliveries:
 3391     tnuro@???
 3391     someone+test@???
 3391   Failed addresses:
 3391   Deferred addresses:
 3391 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>



Note that mydomain & mydomain2 are both hosted on my server, and the
email from sent from someoneelse@???, to tnuro@??? &
someone+test@??? - so I think the routing is working here.



transport debug:

3392 expanding: T: ***TTN*** local_delivery_cyrus
$local_part,$local_part_suffix@$domain , $authenticated_sender
 3392    result: T: ***TTN*** local_delivery_cyrus ,@ ,
 3392 T: ***TTN*** local_delivery_cyrus ,@ ,
 3392 local_delivery_cyrus transport entered



Note that blanks for $authenticated_sender