Vernon Schryver <vjs(_at_)calcite(_dot_)rhyolite(_dot_)com> schrieb/wrote:
From: list-ietf-antispam(_at_)faerber(_dot_)muc(_dot_)de
(=?ISO-8859-1?Q?Claus_F=E4rber?=)
...
You have to add some steps:
The step you added has no effect and you added it in the wrong place.
For obvious practical reasons, most SMTP servers write the message to
a temporary file in a spool directory as it arrives. Your step 2a in
practice happens during step 2 and is completed before the TCP ACK
for the "\r\n.\r\n" is received by the STMP client.
No, that's a temporary file. The crucial point is where the server
finally marks the message as accepted in its spool, i.e. where it
logically where it to its verbatim spool. Before that point, it can
abort and delete the temporary file.
In other scenarios, this point is:
. the message is written to the mailbox of the recipient (for example,
it renames $MAILDIR/tmp/$MESSAGE to $MAILDIR/new/$MESSAGE).
. the server sends the final "\r\n.\r\n" as a client to the next SMTP
server.
Not so. If the network break any time after #2, the server will no
detect the problem until after the server sends "250 OK" and while
trying to close() the connection.
That's a valid objection.
Only by sending "250 OK" will the TCP state machine in the SMTP server
start looking for any response from the client.
However, it might be possible to check for a connection abort and to
abort the handling if that happens.
Claus
--
http://www.faerber.muc.de/
_______________________________________________
Asrg mailing list
Asrg(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/asrg