ietf-smtp
[Top] [All Lists]

Re: Keep Alive Response Codes

2005-09-15 09:33:00

At 16:17 15/09/2005, Arnt Gulbrandsen wrote:

Paul,

while taking a break just now I had a heretical thought. Something that's legal by the RFC, but possibly a little hacky and just a tad revolting:

C: DATA
S: 354 Go on, send me the mail
C: ...
C: .
S: 250-Virus filtering may take time, please be patient
S: 250-Virus filtering may take time, please be patient

At this point, you've started sending 250, but you haven't sent it. You have two legal options: Finish sending 250 and not finish sending it.

S: 250 OK. I accept responsibility for the message

The other option is to close the connection abruptly, and keep a note of the message so you can reject it quickly next time.

That's close to my other idea - I was thinking of sending a 450- 450- etc followed by 450 , and then waiting for the retry, having already decided what to do with the message when it comes through again.

However, your idea is "sort of" better, in that it doesn't require a resend for accepted messages. I'm not sure I like the idea of deliberately dropping a connection though :)

(What we actually do at the moment, is just do all the processing before the 250 or 550 response without any continuation lines, but make a note of the message details. Then, if the message is resent, we discard the second copy immediately - so we don't get duplicates. It still has the problem of duplicated sends which always strike me as less efficient than just having an idle connection. This is why I was wanting to find a better way of doing it, which wouldn't need any unnecessary resends).


Paul                            VPOP3 - Internet Email Server/Gateway
support(_at_)pscs(_dot_)co(_dot_)uk                      http://www.pscs.co.uk/


<Prev in Thread] Current Thread [Next in Thread>