Keep received results when the connection closes
05Process recipient results as they arrive. A connection closing partway through does not erase the replies already received.
The connection closes before Cy’s final reply. The client MUST retain the received250/550 outcomes and treat Cy as a temporary failure. No unconditional resend to all three recipients is illustrated.
Source for this drawing: RFC 2033 · Read RFC section 5 ↗
New to this? Start hereA quick picture + helpful background
The envelope and the letter do different jobs.
Mail transport moves a message between servers. The message format describes its contents. Authentication adds checks; it does not make every message safe.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Keep the received prefix; treat the unreplied remainder as temporary failures.
- The server SHOULD send each reply promptly and flush buffered output before spending nontrivial time on the next recipient. The client SHOULD process replies as they arrive rather than wait for the whole list.
- If the connection closes after some but not all replies, the client MUST process those received and treat the rest as temporary failures. It must not discard a known positive result or invent success for an unreplied recipient.
- LMTP can aggravate duplicate-message synchronization problems; it is not an exactly-once guarantee. A server that can quickly accept multiple recipients and send required notifications SHOULD NOT implement LMTP; keep the intended limited deployment scope.
Three successful RCPT commands are assumed here. Chosen final 250 for Ana and550 for Bo arrive before the connection closes without Cy’s result. Ana’s responsibility transfer and Bo’s permanent result survive; Cy is temporary failure. This does not prove Cy never received mail: loss of a reply can leave uncertainty, so retry can duplicate delivery.
Read the RFC section ↗