Email is hard.
You should know that up front. It isn’t for the faint of heart. Turn around and don’t look back, and all that stuff.
Now that the proper warnings are out of the way, let’s explore the most common available options in running your own email server. I’ll step through the pros and cons of each approach and hopefully give you the insight you need in making this difficult decision.
Why Run Your Own Mail Server?
Privacy is the main concern. Google scans your email to show related advertising. Even though this is done automatically and supposedly no human ever sees it, this still doesn’t sit well with some. Microsoft and others claim not to do this, but the Edward Snowden leaks about the NSA’s links to most major email providers, including Google and Microsoft, make it clear that your email with one of these providers will be scanned.
It is worth mentioning that privacy is a tricky thing to achieve in email. If you send an email to someone using Google or Microsoft’s mail servers, your communication with that person will be scanned and analyzed just the same. Privacy, at least as much as it is possible in email without the use of PGP encryption, is only somewhat guaranteed as long as you communicate with someone who either uses the same server or uses a server with similar levels of data privacy.
Cost is often a concern as well, though providers generally offer mailboxes from less than $10 USD per month. This may seem expensive compared to the cost of a small virtual server, especially if you have many users, but it’s worth taking into consideration the administration time in setup and maintenance, as well as the cost of any involved commercial software.
It’s important to know what you’re getting into with running your own production email server. While you gain privacy and can reduce costs, you do have to do maintenance, even in a fully automatic system. In addition to normal system administration duties like security and bugfix updates, you’ll have to deal with diagnosing bounce notifications, adjusting mailbox quotas, and dealing with blacklists.
Blacklists are both a blessing and a curse for mail administrators. By validating incoming mail against them, you can reduce a lot of SPAM. However, you also must be careful to not end up on one through the actions of your users. A mail only server is not likely to run into this issue unless you have a compromised account or rogue user, but if you do web hosting on the same server you must make absolute sure that all web scripts are kept up to date. A server that hosts WordPress sites, for example, makes a poor choice to host email unless you are diligent about keeping your sites updated and secure.
Should I Run My Own Email Server?
If you aren’t comfortable with running your own server, don’t know how to fix email server issues, and can’t tolerate reception and delivery issues, running your own email server isn’t for you. In this case, I’d recommend checking out offerings from Google or Microsoft, or one of the many smaller providers.
It’s worth mentioning that you may still have the occasional reliability issue even with small providers. The presence of Google and Microsoft in this market is strong and they both tend to run the show. Other providers must constantly adapt to the standards they use and enforce.
Despite the warnings and pitfalls, there are some solid advantages to running your own mail server. Let’s explore the options.
Option 1 – Use Commercial Software Like cPanel
cPanel is a web hosting platform system that installs on RedHat Enterprise Linux or CentOS and reconfigures the system to provide a full array of services, including email. cPanel uses the Exim mail transfer agent (MTA) and has a very advanced configuration engine and spam detection system via SpamAssassin.
The amount of options available for customization via an easy-to-use graphical interface are numerous and can be overwhelming. However, the default configuration is very functional and will work for most users right out of the box. Users are offered a pre-package configuration of three webmail systems – Horde, Squirrelmail, and RoundCube. Also included is excellent support for the POP3, IMAP, and SMTP protocols, mobile support, calendar and contact sharing on iOS devices, and even full-text mailbox searching.
Licenses for virtual dedicated servers cost around $10 to $20 USD per month, depending on license vendor. It may come bundled with your server at no cost. You’ll also receive support from both your datacenter license provider and, as a last resort for more complex issues, cPanel.
Option 2 – Webmin / Virtualmin
Webmin provides an easy-to-install and configure solution for web and email hosting via a dual license plugin called Virtualmin. While similar in scope to cPanel, it doesn’t have as much user interface polish. That said, with simple configuration via a web interface, it is entirely useable and provides a significant shortcut to live production email.
Webmin/Virtualmin are aimed at a more advanced audience. While a novice could certainly install Webmin via the simple installer script provided, more command line and hands-on configuration is required over a system like cPanel. Webmin does provide far more customization options than cPanel, but this flexibility is generally provided via SSH commands and editing configuration files rather than via the graphical interface.
Webmin is open source and can be installed on a wide variety of Linux systems, including RedHat Enterprise Linux, CentOS, Debian, Ubuntu, and Arch. It also has an optional commercial license and support.
Option 3 – Rolling Your Own
cPanel and Webmin provide excellent default configurations, but these systems are resistant to extreme customization. Webmin tolerates this better than cPanel, but with either solution you’d be better off using the workflow and methods described in the documentation. Custom integrations with other systems may break cPanel or Webmin.
If you need something more custom, or prefer to avoid having a third-party software solution managing your email system, rolling your own is probably the best way to go. This isn’t difficult, but for scale installations it does require a bit of tool creation to ensure new users are added correctly, existing users are maintained, passwords are reset with secure values, and new virtual domains are routed correctly.
This option does require the most up-front work and knowledge. Building your own email server from scratch also requires more maintenance to ensure system updates don’t break your workflow and management system. That said, you’ll end up with a system that is truly your own and is configured in the precise manner you need.
If you are considering running your own mail server, I strongly recommend weighing the pros and cons before committing to the project. It’s a lot of work, both up-front and on an ongoing basis, but the benefits to privacy, security, and customization are hard to beat.