Re: [exim] forany() with multiply recipients

Top Page
Delete this message
Reply to this message
Author: Todd Lyons
Date:  
To: Cyborg
CC: exim-users
Subject: Re: [exim] forany() with multiply recipients
On Thu, Feb 21, 2013 at 10:05 AM, Cyborg <cyborg2@???> wrote:
>> its nature it applies to *all* accepted RCPT TO addresses. As Todd
>> Lyons says, there is no way in standard SMTP way to say 'I accept this
>> email for some RCPT TO addresses but not others'; you can only say '200
>> accepted' or '4xx temporarily deferred' or '5xx ha ha you jest no way'.
> No, but you can say "it failed for this address, rest accepted" and process
> all non failed recipients.


But that's the problem. The SMTP protocol does not allow you to do
that at the DATA phase. According to the RFC, if you accepted 5 (for
example) recipients before the DATA phase and you issue a 2XX response
after the DATA phase, you MUST deliver the email for all 5 or a DSN
for those you didn't successfully deliver for. The Postini style
systems which quarantine emails that are known spam are still
delivering those emails and technically honoring the RFCs (provided
you have a means to login and view your quarantine).

You might be saying "I'll just make the accept message indicate which
address I am not really accepting this email for", but that is against
the RFCs for smtp. The PRDR is an enhancement to the SMTP protocol
(think of it as adding queueing capability to LMTP if that makes it
easier). The MTA developer community is a small community, hopefully
it can become a viable option in the future.

...Todd
--
The total budget at all receivers for solving senders' problems is $0.
If you want them to accept your mail and manage it the way you want,
send it the way the spec says to. --John Levine