One problem that those developing web applications run into is testing of email functionality without actually sending out emails, which would confuse users and most likely contain incorrect information. While one way around this is to create a dummy email account to send out emails, this can be complicated to do if you have hardcoded emails in logic hooks or other scripts that you would need to change as well. This is where a fake SMTP agent can come in handy, where it will intercept all the emails being sent and do whatever you wish with them ( such as log them to a text file for example ). All you need to do is feed your application the SMTP settings for the dummy agent, and then configure and start the agent and you are ready to go. This helps tremendously with testing, both for manual and automated testing.
We at Sugar are big fans of fakemail for this, and use this extensively in our testing and operations team. But there are many other tools as well that are used by our technical folks. Here’s a list of some of them:
On Windows exclusively:
- Papercut: http://papercut.codeplex.com/
- Neptune: http://www.donovanbrown.com/post/2008/10/20/Neptune.aspx
- Smtp4Dev: http://smtp4dev.codeplex.com
- FakeSMTP (java): http://nilhcem.github.com/FakeSMTP/
- DummySmtp: http://dummysmtp.com/ (they use Papercut behind to provide it for free)
Other solutions is available but it’s mostly command line version only of require a bit a coding (Java, Python or .NET)
- Wiser (Java): http://code.google.com/p/subethasmtp/wiki/Wiser
- NetDumbster (.NET): https://github.com/cmendible/netDumbster
- DevNull Smtp (Java): http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp
- Dumster (Java): http://quintanasoft.com/dumbster/
- (Python): http://muffinresearch.co.uk/archives/2010/10/15/fake-smtp-server-with-python/
Let us know in the comments what tools you use here and any feedback you may have on them.