When developing mail sending software, you don’t want all your test mails to proliferate in the world.
Luckily there are some SMTP servers and services that allow incoming mail, but don’t forward them:
- Universal (cloud based service): Mailtrap – fake/dummy smtp server for development testing.
- Ruby: MailCatcher.
- Ruby: mocksmtpd: A “mock” SMTP mail server in Ruby : RubyFlow.
- Java: Dumbster – Fake SMTP Server.
- Python: smtpd — SMTP Server has DebuggingServer.
- Windows only; open source: SMTP Impostor, an SMTP server for developers.
- Windows only: open source: smtp4dev.
- Windows only: open source: Papercut.
- Windows only: Neptune (personal SMTP testing server).
- Windows .NET mock: A Simple SMTP Server Mock for .NET.
Note that I also like smtp-cli that Tripp Lilley suggested in his answer: though not a server, it is a nice command-line tool for testing SMTP servers (for instance to see if you got the above servers/services configured right on your client side, or if you have configured your own SMTP server correctly).
The cross platform monitoring tools tcpdump and wireshark (formerly etherreal) are great tools, they are usually way too deep for most of the SMTP problems I encountered. But when the going gets tough they are invaluable, especially Wireshark as it has a great feature Following TCP streams.
I wish there were similar servers and services for POP3, that would have helped a lot with a Delphi Indy project I developed a while ago (: