Intro
Often web applications include some email sending functionality that you have to develop/and test and there are certainly a lot of way to do this, use a fake-email recipient, use a dummy email recipient, spam your colleagues, etc. and there are some advantages and drawbacks to each of these approaches.
Recently I had to do some maintenance on an application that would send a massive amount of emails (mailing list) and I needed to test if everything was still working properly after the code modifications and since I had to change the application to allow sending multi-part messages with attachments there was a possibility that something was broken in the process.
Now for obvious reasons I could not test this in the production environment as it will have an impact on the company's SMTP server and the poor souls receiving an indecent amount of emails so I needed a mock or fake SMTP server to emulate this...
A solution
I present you Fake SMTP server. This great little Java program allows you to easily test your email sending functionality without side-effects (like spamming all your colleagues) by mimicking a real SMTP server.
Once the server is started and listening it will provide you with a list of received emails as well as SMTP logs and RAW email data and it works for both "simple" and MultiPart emails with attachments
How to use it ?
Just download it, unzip it and run it:
[/home/ufasoli/tools/smtp ~] java -jar fakeSMTP.jar
this will start the GUI but not the server for that you will need to click on the "Start server" button
There are also a few command line options that you can provide when starting the server like for example to start the server automatically :
- -o : Change the output directory
- -p : Change the listening port
- -s : Start the server automatically when you run the GUI
As indicated by the author on the websites there are a few alternatives :
- DevNullSmtp : Written in Java 1.4
- SMTP4dev : Written in .Net so not cross-platform
Requirements
The only thing you need to run this server is JVM 1.6+. Please also note that if you run this on a Unix/Linux environment you will need root privileges to listen on the port 25
No comments:
Post a Comment