--On Tuesday, 30 January, 2007 21:25 +0100 Keld Jørn Simonsen
You don't want to do it on QUIT -- too many systems, in
practice, send QUIT and view _any_ response as "ok". However,
there is already provision for returning error replies at the
end of the DATA command (i.e., after the CRLF.CRLF). Such
replies are actually necessary with errors like "SIZE limits
exceeded" (the reply code isn't called that, of course) and to
deal with other problems and MTAs are expected to cope with
OK, the CRLF.CRLF point would be a better place to do it.
Are there MTAs that fail to requeue the message if they get a
temporary error at this point?
Probably. But they shouldn't. Best you can do, I fear.
This, of course, assumes that the approach is workable at all --
others have commented on that; I haven't thought enough about it
to have an opinion.