Neptune (personal SMTP testing server)

by Donovan Brown 20. October 2008 21:01

While working on a current project I found myself faced with testing code that sends email.  In the past I would end up with an inbox full of test messages or unhappy customers that wonder why they just received a flood of emails from my site.  I was also frustrated that there was no way to easily automate this testing.

Enter Neptune. Neptune is a SMTP Development Server targeted for use in automated testing. I simply asked the question, “what if I had a SMTP server that did not relay the message and allowed me to query for messages and their content”. I would be able to use a server of this type to act as my SMTP server during testing and write custom plug-ins, validation and extraction rules to communicate with the server.

The goals of Neptune were to facilitate automated testing and be easy to use. I did not want to have to install a service or understand everything there is to know about running a SMTP server. I simply want to start Neptune and run my test.

Full documentation on how to use Neptune is provided in the msi you can download here. NeptuneSetup.msi (1.27 mb)

If you find Neptune usefull feel free to Donate for future development.

 

Tags: , , , ,

Work

Comments (12) -

Karim Kameka
Karim Kameka United States
10/20/2008 10:24:06 PM #

This tool is awesome and has allowed me to test my code with all the email portions on.  In the past I'd have to comment this code out and then remember to uncomment when we went live.  Also allows me to narrow down the problem to my code, some setting or the email server quickly and easily as this was just taking shots in the dark in the past.  Thanks!

Abel
Abel United States
10/20/2008 11:10:58 PM #

Awesome tool.  I just downloaded it and it does everything you said.  I was dreading setting up an smtp server and I really didn't want to stuff my mailbox full of test messages.

Cool stuff.

--a

Colin
Colin United States
10/21/2008 6:35:53 PM #

thanks, D.  This will solve some my problems and allow me to clean up my code a little.

Scott Allender
Scott Allender United States
10/21/2008 8:08:13 PM #

slick idea.  i'll definitely be playing with it tonight.

David Kemp
David Kemp United Kingdom
10/22/2008 4:12:40 PM #

How do I get this to work in a Continuous Integration environment?

brady gaster
brady gaster United States
10/22/2008 4:38:35 PM #

DKemp - I would say use Process.Start to fire the app up. Then send your emails.
DBrown - GREAT idea, sir. I'll be using this stat. Mui Bueno!

matthew
matthew United States
10/23/2008 2:16:48 AM #

Any chance of this showing up on codeplex (or the like) soon?

Simone
Simone Italy
10/27/2008 6:43:45 PM #

That's awesome tool...
till now I had a debugging configuration that automatically changed the email of the recipient to the test one so that users are not flooded by testing emails.. but this is completely transparent: just change the SMTP and everything works.
Thx

biggie9385
biggie9385 Philippines
1/13/2009 10:56:02 AM #

If I put Neptune in the same machine with our test web server and have it point to 127.0.0.1, can I access Neptune from my desktop (this is a different machine from the web server) and run webtests?

smehaffie
smehaffie United States
3/17/2009 8:06:39 PM #

Are you considering posting this to codeplex?  Are you planning on releasing an upgrade?  If the answer is no to any of the questions above, would there be any way to get the source code for this?  The reason I am asking is that I would like to add some features to this.  This is great for automated/unit testing, but it would also be nice to have some additional features so it could be used for general testing.

1) Ability to persist the messages to disk.  That way you can send the message to other who might want to see them (project managers, BU, etc).  This would also include deleting persisted messages.

2) Ability to view the email messages.  When I am writing new functionality I want to be able to open the emails I just created to see the content.

3) Ability to configure the application to load on startup.

4) UI to make editing the config files easier.

Thanks,

EDI Services
EDI Services United States
3/29/2009 10:10:30 AM #

I just make a dummy email that way neither my customers or I are affected by the influx of a thousands emails. But Neptune sounds like a very good idea.

Paul Kohler
Paul Kohler Australia
5/22/2009 4:32:55 AM #

Very nice.
I like the idea of unit testing via the admin port, clever.
PK  Wink

Pingbacks and trackbacks (5)+

About the author

My name is Donovan Brown and I am a Technology Specialist for DevTools with Microsoft with a background in application development.  I also run one of the Nation’s fastest growing online registration sites for motorsports events DLBRacing.com.  When I am not writing software I race cars for fun.  DLBRacing.com has given me the opportunity to combine my two passions writing software and racing cars.

AdSense

Month List

AdSense