The Sorry State of SMTP Server Software

It’s 2018. We’ve had since the very early 1980s to write email server software. You’d think we would have it nailed down, super easy and have a few top choices that just worked out of the box on Windows and Linux.

Recently I had the need to setup a mail server on Ubuntu server that could perform unlimited message sending. Having looked at gmail and other ‘free’ options, I realized there were many limitations such as send limits, and more seriously the fact that Google harvests all mail message data for their own purposes. I therefore got to work finding free software to setup on a Linux VPS.

Open source software was my first check and almost every solution had problems or was very confusing to setup, especially when needing to read in SSL certificates. Most options did not actually send the email on to the destination which seems like such an obvious feature. So I thought that maybe Linux just has a really good pre-installed option…

So I researched standard built in Linux smtp servers and discovered that postfix was the most popular option. After spending several hours banging my head against cryptic configuration files and a myriad of strange errors and crashes, I realized that this kind of configuration nightmare was not for me. Maybe Windows has a better option I thought…

Scouring the Interwebs, I found a few other Windows smtp server implementations, like hMailServer, but unfortunately hMailServer does not allow a single pfx certificate file, among other oddities.

Of course like any good developer, I decided to re-implement the wheel (βΈ®) and I spent a day writing Mail Demon, a C# smtp server written and compatible with .NET core 2.0+. This is a very lean, fast and easy to configure mail server. Set a few options in a json configuration file (appsettings.json) and you are done. SSL, TLS, certificate horrors, useless error messages and send limit agony are now a thing of the past. I also added smarts to drop bad clients and block them out. If you don’t want to install .NET core, you can do a “self contained” publish of the software to your Windows, Linux or MAC server and eliminate the need to have any additional software installed.

Mail Demon is currently designed to be a one way mail server. This is not what you want if you want to receive email, do spam filtering and allow people to login and and manage their email. This is strictly for sending email messages, probably from a [email protected]*** or [email protected]*** address. Combined with this sms email gateway list I put up a while ago, this will let you send unlimited emails and text messages. With great power comes great responsibility, please don’t send spam or other unwanted messages.

Mail Demon is hosted on github. Right now the support is fairly simple, with STARTTLS, plain authentication and text/html messages supported. Binary message format, line format, etc. will come later. This is enough to send notifications and announcements to your customers without limits which is a great start.

Enjoy, and please give feedback and pull requests.

Leave a Reply

1 Comment threads
1 Thread replies
Most reacted comment
Hottest comment thread
2 Comment authors
jjxtraShane Hollis Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Notify of
Shane Hollis
Shane Hollis

iRedMail – Awesome and open source and relatively cheap.

LetsEncrypt have a really simple script you can install on a Linux server to do the certs. I’ve got a script that does it in about 10 seconds and can automate it to happen using CRON

Windows based: Mercury Mail. Worth a look – fully fledged mail server.

Linux – Sendmail command. pretty good straight out of the box.