Testing self-hosted webmail packages

Introduction

I’ve been using SquirrelMail for nearly a decade to interface with my self-hosted mail server (Postfix + Dovecot) from the desktop1. It’s a clean and simple FOSS webmail with relatively easy customizations and a variety of plugins.

In particular, I frequently use a plugin allowing for an arbitrary ‘From’ address in the header of outgoing email – this is very useful for my wildcard email inboxes, where I collect all mail addressed to a regular expression – for example, [email protected] and [email protected] would both go to my [email protected] inbox defined by .*[email protected]. The arbitrary ‘From’ address makes it easy to reply to infrequently used addresses without managing multiple email identities/profiles.

A notable feature lacking in SquirrelMail, though, is support for multiple accounts or unified inboxes. I prefer to have several separate wildcard accounts: personal, financial, service-account, and test/spam inboxes. This inevitably results in logging out and back in to the next account when checking multiple inboxes via my webmail.

Additionally, while entirely functional and wonderfully simple, SquirrelMail is definitely showing its age in the era of responsive AJAXey modern web design.

The combination of these two complaints finally motivated me to start searching for a replacement. My criteria are:

  • Clean/minimalist interface, but lots of configuration available
  • Multiple account access
  • Preferably easily modified
  • Free, preferably without a paid version (which implies a lack of features in the free version)
  • FOSS preferred, as these more frequently meet the above criteria
  • Ideally a unified inbox available

Candidates

Searching a variety of sources2 led me to identify several candidates, two of which I investigated further. I rejected:

  • Roundcube: Single account operation only, and appears to be a somewhat cluttered interface.
  • Mailpile: This initially seems to be a great FOSS option with a clean interface, but it is between releases without much development activity. It’s also designed as a locally-hosted email client with a web interface, although it can be installed on a web server with Apache’s mod_proxy module. Something to keep an eye on.
  • Webmail Lite: A free version of a commercial product. It looks decent, but is very similar to the cleaner RainLoop below.
  • Nextcloud Mail: This is a polished modern webmail, responsive and clean, and even has a unified inbox. It doesn’t have many configurable options, though, and is not available as a standalone webmail. If I were to install a Nextcloud3 instance, this may be the best choice.

The two candidates I selected to try were RainLoop and Cypht.

RainLoop

RainLoop is a slick, clean, and responsive modern webmail. I’m told it looks a lot like gmail. Installation is very simple: drop the files into the appropriate location on your webserver, and then browse to the administration interface (/rainloop/?admin) to perform initial configuration.

Advantages:

  • Clean and responsive interface
  • Multiple accounts with easy two-click switching
  • Reasonably detailed configuration
  • FOSS4

Disadvantages:

I prefer RainLoop’s interface over any other webmail I’ve tried; it’s very polished, and account switching is easy. I have found no bugs or unexpected behavior.

Cypht

Cypht is another clean and responsive webmail. It’s closer to SquirrelMail than RainLoop, with fewer rounded edges and modal windows, and that may be a good thing. It’s under active development and has a great many features and configuration options. One of the best features for my use is the unified inbox, allowing emails from all accounts to be seen in a single screen with the associated account label.

Unfortunately I have encountered a number of bugs with the inbox5 and a few other sections. I’ve not yet looked into fixing or reporting these, but it seems likely that the author would be responsive to either pull requests or bug reports. It’s possible for now to work around the existing bugs, but the contacts and mail composition is also relatively limited: there’s no attachment forwarding or HTML editing, and I’ve encountered problems saving drafts.

Advantages:

  • Clean and readable interface
  • Multiple accounts with unified inbox
  • Detailed configuration
  • Many existing plugins (‘modules’)
  • Documented plugin development
  • FOSS, under active development
  • Focus on security

Disadvantages:

  • Somewhat rough around the edges: frequent bugs
  • More complex installation
  • Limited address book functionality
  • Limited composition capability
Installation

Installation of Cypht is much more involved than RainLoop, involving altering multiple settings in an ini file and dealing with multiple directories. Following the documentation, I have generated a pair of bash scripts to update and reinstall Cypht.

The download script follows the example in the documentation, retrieving the current master build and locally extracting, then moving to /usr/share/cypht; it is fairly self-explanatory:

The installation script is more complex; I’ve attempted to make it follow the manual installation steps from the documentation in an automated fashion. This requires setting appropriate permissions across multiple directories that it first has to find. If your PHP installation uses open_basedir, these directories have to be inserted into that path, as the official setup file is a PHP script. It also takes care of creating an apache2 configuration file linking /cypht to Cypht’s installation folder.

Comparison and Conclusion

To provide a side-by-side comparison, I installed both RainLoop and Cypht and kept both open simultaneously for a few days, attempting to use them equally. Cypht’s unified inbox proved to be far more convenient for simply checking email, allowing me to see all of my accounts at a single glance rather than switching between multiple views. Due to this I could not easily dismiss Cypht for its several awkward interface bugs.

At the moment, I’ve been primarily using Cypht for reading email and working around the bugs I encounter. I use RainLoop for composition, with its polished and smoothly functional interface.

Neither RainLoop nor Cypht have existing plugins or trivial modifications that would allow me to use arbitrary ‘From’ headers in my outgoing emails. They both appear to have fairly straightforward plugin systems, and I will be looking into making a plugin for each one. Until that is done, I’ll keep SquirrelMail around for when I need it.

I am hoping that the active Cypht development effort ends up fixing the bugs that I am running in to, such that I can eventually switch to it completely. Otherwise, it’s likely that plugin development and potentially contribution difficulty will determine which solution I eventually migrate to.

Footnotes

  1. I love K-9 for use on my Android
  2. One being a comprehensive list of FOSS self-hosted software
  3. Free-er fork of OwnCloud by several of their developers
  4. A paid version is available, but this seems to be only if one wants a non-GPL license
  5. Especially when using the otherwise very helpful inline reading feature

Leave a Reply

Your email address will not be published. Required fields are marked *