This is part three of a tutorial series for Running Your Own Open Source Email Server. In this tutorial, I’ll guide you through customizing iRedMail’s chosen web-based email client, Roundcube.
Roundcube is an independent open source project with a developer community of its own providing support, documentation, themes and plugins. Roundcube’s feature set offers many of the features mainstream clients provide:
- localized in over 70 languages
- drag-and-drop message management
- full support for MIME and HTML messages
- multiple sender identities
- full featured address book with groups and LDAP connectors
- rich text/HTML message composing
- searching messages and contacts
- threaded message listing
- spell checking
- IMAP folder management
- support for external SMTP server
- template system for custom skins
- plug-in API for flexible extensions
Here’s a complete list of RoundCube features.
Keep in mind, if you’re not a fan of Roundcube, you can use iRedMail’s POP and IMAP features to access your mail from any compatible mail application. Here’s a visual guide to configuring iRedMail with Apple Mail and your iPhone.
Themes for Roundcube
Themes on Roundcube are called skins. You can find a variety of skins here and here. There is a free/by-donation theme that looks like Google:
You can also purchase skins, typically for US$99. These provide advanced look and feel environments, including mobile web support. A few provide similar look and feel to familiar mainstream environments.
Here’s an iCloud-based skin:
Here’s an Outlook-based skin (see a demo):
I’ve installed this one for a client and it seemed to work quite well.
If you’d like to build your own skin, here’s Roundcube’s documentation for creating a theme.
Plugins for Roundcube
Plugins are a great way to customize and extend Roundcube’s default feature set. There are a few plugins and settings I like to use to improve login and authentication.
Extend Session Lifetime
The first isn’t a plugin but a setting to extend the session lifetime. If you look in your iRedMail.tips file, it will provide a section for where the Roundcube settings are:
Roundcube webmail: /usr/share/apache2/roundcubemail-1.0.4 * Configuration files: - /usr/share/apache2/roundcubemail-1.0.4/config * URL: - http://red.lookahead.me/mail/ - https://red.lookahead.me/mail/ (Over SSL/TLS) * Login account: - Username: [email protected], password: XXXXXXXXXXX * SQL database account: - Database name: roundcubemail - Username: roundcube - Password: 7XXXXXXXXXXXXXXXXXXXXXXXm * See also: - /etc/apache2/conf-available/roundcubemail.conf
The default session lifetime for Roundcube is only ten minutes. Let’s change ours to three days, which is 4,320 minutes.
Go to your Roundcube configuration directory (based on your version number):
cd /usr/share/apache2/roundcubemail-1.0.4/config nano config.inc.php
Change the session lifetime from 10 minutes to 60 or 600 or 4320 minutes, etc.:
Note: Older versions of Roundcube had different configuration file names. These were merged in version 1.0.x.
The Persistent Login Plugin
Next, let’s install the Persistent Login Plugin. This provides a remember me checkbox on the sign-in page.
To install the Remember Me plugin, go to your Roundcube plugin directory (Your version # may vary) and download the code.
cd /usr/share/apache2/roundcubemail-1.0.4/plugins sudo wget https://github.com/mfreiholz/Roundcube-Persistent-Login-Plugin/archive/master.zip
You may need to install unzip to unpack the code:
sudo apt-get install unzip unzip master.zip
Rename the folder:
sudo mv Roundcube-Persistent-Login-Plugin-master persistent_login
Modify the active plugins array by editing the Roundcube config.inc.php file:
cd /usr/share/apache2/roundcubemail-1.0.4/config sudo nano config.inc.php
“persistent_login” to the plugins array:
// List of active plugins (in plugins/ directory) $config['plugins'] = array("password","managesieve","persistent_login");
Restart your web server:
sudo service nginx reload
You should see this at your Roundcube login—notice the checkbox at the bottom:
Two Factor Authentication for Roundcube
If you’d like to add two factor authentication for your Roundcube email, check out Alexandre Espinosa Menor’s Two Factor Google Authenticator. I won’t walk through the installation and configuration here but you can see how it works. The installation instructions are similar to the plugin we installed above.
The login screen gets a secondary step requiring your Google Authenticator code:
And you can configure Google Authenticator from Roundcube’s Settings:
The Mark as Junk Plugin
The Mark as Junk plugin provides a GUI mechanism for you to mark email as spam and have iRedMail’s spam agents learn from your selections.
Download the release appropriate to your version of Roundcube from GitHub. We’re using version 1.8.2 of the plugin for Roundcube 1.0.x.
cd /usr/share/apache2/roundcubemail-1.0.4/plugins sudo wget https://github.com/JohnDoh/Roundcube-Plugin-Mark-as-Junk-2/archive/1.8.2.zip unzip 1.8.2.zip mv Roundcube-Plugin-Mark-as-Junk-2 markasjunk2
Then, copy the default settings and reload the web server again:
cd markasjunk2 cp config.inc.php.dist config.inc.php sudo service nginx reload
You should see the Junk icon in your command buttons in the Roundcube client:
Whenever you encounter a junk message, just click the Junk button and the iRedMail server components for spam filtering will be trained.
The Plugin Manager
You can also install the Roundcube Plugin Manager. It makes it possible for individual Roundcube users to install their own plugins.
Plugin Manager emerged with the idea of putting users in control of their webmail preferences allowing them to enable and disable functionality (plugins) per account to fit their personal needs while providing administrators a more simple way to control, manage and update roundcube plugins at the same time.
Installing Plugin Manager is exactly the same as the process we used with the other plugins above. See here for installation instructions.
Note: Using Plugin Manager with some plugins requires that you purchase credits in a virtual currency.
PGP Encryption With Roundcube
Encryption has long been at the top of requested features for Roundcube:
PGP encryption is one of the most frequently requested features for Roundcube and for good reasons more and more people start caring about end-to-end encryption in their everyday communication. But unfortunately webmail applications currently can’t fully participate in this game and doing PGP encryption right in web-based applications isn’t a simple task. Although there are ways and even some basic implementations, all of them have their pros and cons. And yet the ultimate solution is still missing.
The only active project listed is Mailvelope which manages encryption in the browser. It’s available for Chrome and Firefox.
I hope you’ve enjoyed this introductory series. If you need more Roundcube help, visit the Roundcube support website.
Please post any comments, corrections or additional ideas below. You can browse my other Tuts+ tutorials on my instructor page or follow me on Twitter @reifman.
- Roundcube Website
- Roundcube Skins
- Roundcube Plugin Repository
- Roundcube Support Forum
- How to Install Your Own Private E-mail Server in the Cloud