I read it about 4 times, and ended up addressing this part:

"If I'm going to reject an email, I generally do it during the
connection, so that I don't have to accept responsibility for it. It also means I don't have to process it further internally, when only some of the recipients want to accept it.


"However, this leaves me with a quandry: If I reject the
connection, I reject it for everyone, including a recipient who may have
wanted it; if I accept the connection (full transaction), I accept it for everyone, including a recipient who may not have wanted it - the internal processing mentioned earlier.


"If I only allowed a single sender/recipient/message per connection, then it would be easy to apply the rules and either accept or reject the connections individually."

Guess I should have stuck to the markup and answered that. ;)

But his later response explains in more detail his desire to deal with as few owners of broken MTA's as possible when splitting up individual responses. So question answered, either way.

-- Bryan

John Peacock wrote:
Bryan Scott wrote:

Why not just send a 5xx for the specific recipient? I don't know why you would want a 4xx if you're going force a reconnect just to reject it anyway.


Please read the original message again. Roger was asking if most MTA's would requeue messages for multiple recipients, so that he could serialize incoming mail (i.e. only the first recipient would be accepted in any given transaction). And at least my impression was that they _should_ by the RFC's but that isn't necessarily a good way to write your code.

One thing I forgot to point out was that if a MTA does requeue 4xx recipients, it may use its internal retry intervals as if the *entire* message had failed. Consequently, recipient #10 might not get delivered for some hours or even days later...

John

Reply via email to