Friday, January 21, 2011

Human SMTP Server in Microsoft Certified Master training

This was an exercise that I really enjoyed. Our instructor setup a listener on port 25 that would allow you to type SMTP commands as if we were the server. Keep in mind that we are in a room full of the top percent of e-mail system architects and engineers. So we all know the SMTP commands that the client sends, and well, the server is somewhat forgiving of typos. But since servers don't make typos, well, the client will just drop. Volunteers? Anyone, Anyone? After a while, I decided to give it a go. I was pretty sure I knew what I was doing, so I got up there and started typing.

I type: 220
Client: ehlo contoso.com
I type: 250
Client: mail from: user@contoso.com
I type: 250
Client: rcpt to:user@fabrikam.com
I type: 250
Client: DATA
I type: 250
Client: !!crickets!! it was gone, obviously 250 wasn't the right response to the DATA command. Incidentally, it is 354. The good news is that I was close, I knew that when I was done sending data it would have looked for another 250, and it always ends with 221 after the QUIT command is issued.

It took the class a few tries to get it right, but it was a lot of fun, with the purpose of making sure we really are familiar not only with what the client is sending, but what the server is sending too, because when you are tracing a protocol log, it helps to just know it.

No comments: