Autor: Tim Jackson Data: Para: exim-users Asunto: Re: [Exim] How to distinguish between one and multiple recipients
within an ACL statement?
Hi Eli, on Thu, 5 Feb 2004 12:09:57 -0500 you wrote:
> This is because the exiscan features (spam/virus scanning, mine stuff,
> etc...) work only in the DATA phase of the message. At this stage, the
> system is dealing with the message as a single entity and the message is
> worked over only *once* for *all* recipients.
This is right.
<snip>
> I think that the reason for this behaviour is possibly because how the
> header stuff is currently implemented in ACLs.
This is wrong.
> Mabye with the hopes of header implementation being reworked in ACLs in
> the future, it might be possible to have the DATA ACL phase processed on
> a per recipient basis? Chances are I missed something important here, so
> I'm hoping people correct me if I'm wrong :)
You're missing something :) The fundamental problem is that SMTP only
provides one opportunity to say yes/no to a message at the DATA stage, not
one opportunity per recipient. This is a limitation of the protocol, not
of Exim or Exiscan. So I very much doubt Exim will be changed to call the
DATA stage multiple times, because it wouldn't make sense - however much
the ACLs or Exiscan are changed, they can't get round the fact that at
some point you have to give *one* response back via SMTP at the DATA
stage. As was mentioned, the only real way round this is to accept only
one recipient per session, or only recipients that match a particular set
of DATA-time preferences.