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
signature.asc
Description: Digital signature