Have you ever began or written an application that had a need to send an automated email via SMTP? If so, how would you test this, is there some test email server avaiable? One option is to stand up your own email server and then use that for testing. As anyone who has done this knows it can be apain in the you know what and then what happens when you are developing away from the network where the mail server resides? In many cases what happens is you end up writing code that you have to comment out or sourround with #IF DEBUG type code. When you do this you end up with untested code. How do you know the email was sent? how do you know the email was formattedcand included the correct information? Short of writing your own email server to run on your development machine there is really no good solution to this probelm, until now.
A good friend of mine Donovan Brown has written such a tool. He calls it Neptune! Neptune is a personal SMTP server designed to run like the personal web server built into Visual Studio. It runs in the background and sits in your system tray. All emails sent via Neptune, which runs on 127.0.0.1:25 by default are captured in the trace.log file and can be visible. Neptune also integrates with the Visual Studio Team Server Test tools and will allow you to create unit tests for your SMTP code. This of course will allow you to have complete Test Driven Development process with possibly now 100% code coverage including your email code.
To download Neptune visit the http://www.donovanbrown.com/post/2008/10/20/Neptune.aspx