Webmail Deathmatch: RoundCube vs. Horde vs. SquirrelMail

Vergleich von drei Webmailsystemen. (Inklusive Installanleitung.)

Fazit: Keine der genannten Webmail-Applikationen können einen echten Mailclient wirklich ersetzen und sind maximal als Notlösung geeignet!

Im Punkt Optik/Handhabung hatte nur RoundCube die Nase vorn wärend die anderen beiden nicht mehr „state of the art“ und tlw. komplizierter sind.
Dafür warten Horde und SquirrelMail mit größerem (funktionierendem) Funktionsumfang auf und verfügen über GPG/PGP Funktionalität.

Google ist hier, wie ich leider zugeben muss, in so ziemlich allen belangen besser. Obwohl es, soweit ich weiß, kein GPG/PGP kann. Aber wer will seine Daten/Mails schon freiwillig einem US-Unternehmen, welches von Datenschutz/Privatsphäre nichts hält, nicht an deutsche Gesetze gebunden ist (auch die Server stehen in den USA) und sich wie eine ungezügelte Daten-Krake verhält, in den Rachen werfen? (Gegenbeweise, die über das bloße Zeigen von „Papier“, denn Papier ist sehr geduldig, hinausgehen sind gerne gesehen.)

 

HPs: http://roundcube.net/ https://www.horde.org/ http://squirrelmail.org/

Vorab:
PHP sollte mindestens mit folgenden optionen kompiliert/installiert worden sein:
„–with-dom –with-imap –with-gettext –with-mcrypt –with-gd –with-iconv –with-mime-magic –with-openssl“
Desweiteren wird gebraucht: MySQL-, Web-, IMAP- und SMTP-Server

In der/den php.ini Dateien sollte noch folgendes gesetzt werden:
date.timezone = ‚Europe/Berlin‘
file_uploads = On
max_file_uploads = 5
upload_max_filesize = 5M

Nettes Goodie welches eventuell eine Erwaehnung wert ist, obgleich es nicht direkt dazu gehört ist der webmailnotifier für den Firefox.

RoundCube vs. Horde vs. SquirrelMail

RoundCube:
+ Leicht zu installieren
+ Schnell
+ Gute, intuitive, Benutzeroberfläche (ähnelt den normalen mailclients wie Outlook oder Thunderbird)
+ Übersichtliche konfiguration
– Kann kein GPG/PGP (soll aber geplant sein)
– Viele Plugins (u.a. Kalender/Notepad) funktionieren, in der aktuellen Version zumindest, nicht und machen teilweise die gesamte Weboberfläche unbenutzbar. Besonders das jquery Plugin machte RC bei mir unbenutzbar.
– Filter nur in Form von ManageSieve (eigenständiger, extra zu installierender, deamon – nicht enthalten)
# Braucht eine Datenbank

Horde:
+ Komplette Suite mit Mail, Filtern (Sieve, procmail, „eigenes Format in der Datenbank“ und mehr), Kalender, ToDo-Liste und Notizblock – All-In-One
+ Kann GPG/PGP (mit einschränkungen! Beim reply auf eine verschlüsselte mail wird der verschlüsselte source, und nicht der klartext, der mail als quote eingesetzt)
+ Alle Plugins funktionieren
– Nicht ganz so gut/schnell und flüssig zu installieren
– Unübersichtliche Konfiguration
– Langsam
– Leicht angestaubte/antiquierte Benutzeroberfläche
# Braucht eine Datenbank

SquirrelMail:
+ Schnell und schlank
+ Kann GPG/PGP (ABER: „NOTE: The current release of this plugin is not functional with newer versions of SquirrelMail“)
+ Plugins wie Kalender, Filter (jedoch nur „eigenes Format in der Datenbank“) usw. sind, wie bei Horde, bereits, per default, dabei
– Aufwändige Installation
– Teilweise unübersichtliche Konfiguration
– Nicht alle, aber die meisten, Plugins funktionieren
– Sehr angestaubte/antiquierte Benutzeroberfläche
# Braucht _keine_ Datenbank

Man wählt hier also zwischen Pest, Cholera und Pocken.
Letzlich hat, bei mir, aber Horde das Rennen gemacht. Es ist zwar langsam, unschön zu konfigurieren und hat nicht die tollste Benutzeroberfläche aber das ganze funktioniert, im wesentlichen, einfach und problemlos.

Aber ein „all-in-one-gücklich-und-sorglos“-Paket bietet wohl nur Google. Wobei ich da das „sorglos“, im Hinblick auf Datenschutz, Privatsphäre und Rechtssicherheit (Firma und Server sind in den USA), eigentlich streichen müsste. (Ja, ich weiß was einem Google in ihren AGBs und policys so alles verspricht – aber Papier ist sehr geduldig.)

 

RoundCube

Apachekonfig:
# vim /etc/apache2/vhosts.d/webmail.conf

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/certificate.key
SSLCACertificateFile /etc/apache2/ssl.crt/root-ca.crt

<directory „/webhome“>
Options FollowSymlinks
AllowOverride All Limit
AuthName „Authorized personel only – mail“
AuthType Basic
AuthUserFile /webhome/.htpasswd
require valid-user
Order allow,deny
Allow from all
</directory>

# /etc/init.d/apache2 reload

MySQL Datenbank und User
# mysql -p
> CREATE DATABASE roundcubemail_kundennummer;
> GRANT ALL PRIVILEGES ON roundcubemail_kundennummer.* TO rcmail_user@localhost IDENTIFIED BY ‚password‘;
> FLUSH PRIVILEGES;
> quit

Installation
# cd ~/webhome/
~/webhome # wget „http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.4.2/roundcubemail-0.4.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Froundcubemail%2Ffiles%2Froundcubemail%2F0.4.2%2Froundcubemail-0.4.2.tar.gz%2Fdownload&ts=1293442260&use_mirror=netcologne“
~/webhome # tar xzf roundcubemail-0.4.2.tar.gz
~/webhome # ln -s roundcubemail-0.4.2 mail

Im Browser: https://www.yourdomina.de/mail/installer/

Plugins: https://github.com/roundcube/roundcubemail/wiki / https://plugins.roundcube.net/packages/johndoh/
Pluginsammlung: https://code.google.com/archive/p/myroundcube )

Es wäre noch Ratsam in der Konfig (mittels editor) noch ein wenig anzupassen:
# vim config/main.inc.php

// Erzwinge HTTPS
$rcmail_config[‚force_https‘] = true;
// Plugins, in plugins/, muessen erst hier aktiviert werden
// funktioniert nicht uebers web
$rcmail_config[‚plugins‘] = array(
„password“,
„additional_message_headers“,
„filesystem_attachments“,
„archive“,
„markasjunk“,
„accounts“,
„jqueryui“,
„calendar“,
„pwtools“,
„moreuserinfo“,
„remember_me“,
„webmail_notifier“,
);

Der Kalender braucht vorher noch das jquery-ui plugin https://code.google.com/archive/p/roundcube-plugins/downloads) und muss konfiguriert werden: „plugins/calendar/config/config.inc.php.dist“

 

Horde

Apachekonfig:
# vim /etc/apache2/vhosts.d/webmail.conf

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/certificate.key
SSLCACertificateFile /etc/apache2/ssl.crt/root-ca.crt

<directory „/webhome“>
Options FollowSymlinks
AllowOverride None
AuthName „Authorized personel only – mail“
AuthType Basic
AuthUserFile /webhome/.htpasswd
require valid-user
Order allow,deny
Allow from all
</directory>

# /etc/init.d/apache2 reload

MySQL Datenbank und User
# mysql -p
> CREATE DATABASE hordemail_kundennummer;
> GRANT ALL PRIVILEGES ON hordemail_kundennummer.* TO hordemail_user@localhost IDENTIFIED BY ‚password‘;
> FLUSH PRIVILEGES;
> quit

Installation
# cd ~/webhome/
~/webhome # wget ftp://ftp.horde.org/pub/horde-webmail/horde-webmail-latest.tar.gz
~/webhome # tar xzf horde-webmail-latest.tar.gz
~/webhome # ln -s horde-webmail-1.2.9 mail
~/webhome # cd mail
~/webhome/mail # ./scripts/setup.php

Bei Horde verifiziert man die Konfiguration besser nochmal:
# vim config/conf.php

$conf[’sql‘][‚charset‘] = ‚utf-8′;
$conf[’sql‘][‚database‘] = ‚hordemail_kundennummer‘;
$conf[’sql‘][‚password‘] = ‚password‘;
$conf[’sql‘][‚persistent‘] = true;
$conf[’sql‘][‚phptype‘] = ‚mysql‘;
$conf[’sql‘][‚protocol‘] = ‚unix‘;
$conf[’sql‘][’socket‘] = ‚/var/run/mysql/mysql.sock‘;
$conf[’sql‘][’splitread‘] = false;
$conf[’sql‘][’ssl‘] = false;
$conf[’sql‘][‚username‘] = ‚hordemail_user‘;
$conf[‚auth‘][‚admins‘] = array(’sven‘);
// http = .htpasswd authentifizierung
//$conf[‚auth‘][‚driver‘] = ‚http‘;
$conf[‚auth‘][‚driver‘] = ‚application‘;
$conf[‚debug_level‘] = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR;
$conf[‚image‘][‚convert‘] = ‚/usr/bin/convert‘;
$conf[‚log‘][’name‘] = ‚/webhome/logs/horde.log‘;
$conf[‚mime‘][‚magic_db‘] = ‚/etc/apache2/magic‘;

# vim config/registry.php

webroot‘ => ‚/mail‘,

(Die Funktion „_detect_webroot()“ funktioniert nicht… immer. Besonders dann nicht wenn man horde nicht im webroot laufen lässt sonder, wie ich, unter /mail.)

# vim imp/config/conf.php

$conf[‚cookie‘][‚path‘] = ‚/mail‘;
$conf[‚msg‘][‚append_trailer‘] = false;
$conf[‚msg‘][‚prepend_header‘] = false;
$conf[’server‘][’server_list‘] = ‚hidden‘;
$conf[‚utils‘][‚gnupg‘] = ‚/usr/bin/gpg‘;
$conf[‚utils‘][‚gnupg_keyserver‘] = array(‚pgp.mit.edu‘, ‚keyserver.noreply.org‘);
$conf[‚utils‘][‚openssl_binary‘] = ‚/usr/bin/openssl‘;

(Ich möchte den Usern die möglichkeit geben GPG/PGP verschlüsselte mails zu lesen/senden. Ausserdem brauche ich keine trailer.)

Im Browser: https://www.yourdomina.de/mail/ Options -> Global Options

Plugins: https://www.horde.org/apps / https://www.horde.org/development/modules

 

SquirrelMail

Apachekonfig:
# vim /etc/apache2/vhosts.d/webmail.conf

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:!LOW:!SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/certificate.key
SSLCACertificateFile /etc/apache2/ssl.crt/root-ca.crt

<directory „/webhome“>
Options FollowSymlinks
AllowOverride None
AuthName „Authorized personel only – mail“
AuthType Basic
AuthUserFile /webhome/.htpasswd
require valid-user
Order allow,deny
Allow from all
</directory>

# /etc/init.d/apache2 reload

Installation
Hinweis: Der Webserver läuft als User wwwrun mit der Gruppe www

# cd ~/webhome/
~/webhome # wget „http://downloads.sourceforge.net/project/squirrelmail/stable/1.4.21/squirrelmail-1.4.21.tar.gz?r=http%3A%2F%2Fsquirrelmail.org%2Fdownload.php&ts=1293612617&use_mirror=switch“
~/webhome # tar xzf squirrelmail-1.4.21.tar.gz
~/webhome # ln -s squirrelmail-1.4.21 mail
~/webhome # mkdir -p /usr/local/var/squirrelmail/data /usr/local/var/squirrelmail/attachments
~/webhome # chown wwwrun:www /usr/local/var/squirrelmail/data
~/webhome # chgrp www /usr/local/var/squirrelmail/attachments
~/webhome # chmod 730 /usr/local/var/squirrelmail/attachments
~/webhome # crontab -e

# Delete stale squirrelmail attachments that are older than two days
0 1 * * * * /usr/bin/find /usr/local/var/squirrelmail/attachments -mtime +2 > /dev/null 2>&1

~/webhome # ./config/conf.pl

Konfig verifizieren:
# vim config/config.php

$provider_uri = ‚https://iwww.yourdomina.de/mail‘;
$imapServerAddress = ‚localhost‘;
$smtpServerAddress = ‚localhost‘;
$data_dir = ‚/usr/local/var/squirrelmail/data/‘;
$attachment_dir = ‚/usr/local/var/squirrelmail/attachments/‘;
$plugins[0] = ‚administrator‘;
$plugins[1] = ‚calendar‘;
$plugins[2] = ‚filters‘;
#[…]
$plugins[9] = ‚message_details‘;

(Weitere plugins werden aktiviert indem man die Zahl einfach weiter hochsetzt und den namen angibt.)

Im Browser: https://www.yourdomina.de/mail/src/configtest.php -> https://www.yourdomina.de/mail/src/login.php

Plugins: http://squirrelmail.org/plugins.php
Plugins installationsanleitung: plugins/README.plugins
GPG-Plugin: http://squirrelmail.org/plugin_view.php?id=153