On 2008-01-28 13:34:18 -0600, Jared Johnson wrote:
> Peter J. Holzer wrote:
> >That's why I wrote cf_wrapper (it's in the contrib directory), which
> >checks the results for all recipients and returns a temporary error when
> >they don't agree - when the client resends the message, it can "split"
> >them into two groups with consistent responses.
> 
> Who is "the client" here?  The remote mail server?

Yes.

> Won't this break when remote mail servers decide to just re-attempt
> the same message with the same recipients?

No, that's what they are supposed to do.

Let's assume that the mail had 4 recipients A, B, C, and D and that the
message should be rejected only for C. The cf_wrapper plugin stores the
information that C is different from A, B, and D.
When the client retries, the server will issue a 4xx reply
to "rcpt to:<C>", so at the data_post phase there will be only the
recipients A, B, and D, and the message will be accepted. The client
sees that the message has been accepted for three recipients and there
was a temporary error for one of them, so it will requeue the message
with this recipient. At the next delivery attempt, the message will
reach the data_post phase with the single recipient C, and be rejected
permanently. (It's actually a bit more complicated, but that's the basic
idea)

It's an ugly hack, but it works quite well for me.

        hp

-- 
   _  | Peter J. Holzer    | It took a genius to create [TeX],
|_|_) | Sysadmin WSR       | and it takes a genius to maintain it.
| |   | [EMAIL PROTECTED]         | That's not engineering, that's art.
__/   | http://www.hjp.at/ |    -- David Kastrup in comp.text.tex

Attachment: signature.asc
Description: Digital signature

Reply via email to