Anleitung: Webmail-Client Roundcube installieren und konfigurieren

Roundcube Logo - Roundcube installierenHeute soll es darum gehen, wie man den Webmail-Client Roundcube auf seinem Webspace/Webserver installieren kann. Doch bevor es losgeht, möchte ich noch zwei, drei Worte verlieren, wofür das ganze überhaupt gut ist und warum ich mich für Roundcube entschieden habe. Wer nur an der Installationsanleitung interessiert ist, überspringt den folgenden Absatz einfach und liest bitte bei der nächsten Zwischenüberschrift (“Die Grundvoraussetzungen”) weiter.

Warum sollte ich mir einen Webmail-Client auf meinem Server installieren? Ich kann die Frage nur für mich und meinen Fall beantworten. Ich habe mehrere E-Mail-Adressen. Eine bei Googlemail und mehrere für meine Webseiten und Blogs, die jeweils alles ähnlich auf @name-der-webseite.net enden.

Wenn ich nun meine Mails abrufen möchte, dann möchte ich nicht zwingend fünf verschiedene Webseiten aufrufen und drei Programme öffnen. Ich hätte gerne alles an einem Platz. Googlemail bietet zwar das Einbinden weiterer Mailkonten an, beschränkt sich dabei jedoch auf POP3. Da ich auf IMAP nicht verzichten möchte, da sonst die Mails bei Googlemail landen und nicht mehr auf meinem Smartphone ankommen, war das also keine Lösung.

Bisher nutzte ich für die Problematik “Thunderbird Portable” auf einem USB-Stick. So konnte ich von überall aus meine Mails abrufen und musste nur ein Programm starten. Doch ganz perfekt ist diese Lösung auch nicht, denn öfters vergisst man den USB-Stick oder hat nur Zugriff auf einen Rechner, dessen USB-Ports entweder gesperrt sind oder der sich in einem Netzwerk befindet, dessen Firewall die IMAP-Ports blockt. Dies Lösung? Ein webbasierter Mailclient. Mehr als ein funktionsfähiger Browser wird nicht benötigt und man kann von überall aus seine Mails mit demselben Client abrufen. Und genau das ist und bietet Roundcube, weshalb es nun nachfolgend eine kleine Installations- und Konfigurationsanleitung für Roundcube gibt.

Die Grundvoraussetzungen

Um Roundcube zu installieren wird prinzipiell nur ein Webserver mit PHP-Unterstützung und einer Datenbank benötigt. Ich habe hier auf meinem Server eine Kombination aus Apache und MySQL laufen. Prinzipiell geht aber auch eine PostgreSQL-Datenbank und ein anderer Webserver wie zum Beispiel Lighthttpd.

  • Webserver mit PHP Version >= 5.2.1
    • (z.B. Apache, Lighttpd, Cherokee, Hiawatha)
  • Datenbank(-server)
    • (z.B. MySQL oder PostgreSQL)

Pakete laden und Webserver einrichten

Zuerst benötigen wir einen Ordner für die Roundcube-Installation im Root-Verzeichnis des Webservers. Im Falle von Apache ist dies in der Standardkonfiguration /var/www. Danach wechseln wir in den neu angelegten Ordner und laden mittels wget die aktuelle Roundcube Version herunter.

mkdir /var/www/roundcube
cd /var/www/roundcube
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.9.5/roundcubemail-0.9.5.tar.gz

Zum Zeitpunkt dieses Tutorials ist 0.9.5 die aktuelle Version. Es kann natürlich sein, dass im Laufe der Zeit eine neue Version veröffentlich wird und ich den Artikel nicht sofort aktualisieren kann. Deshalb kann ein Blick auf die Downloadseite des Roundcube-Projekts nicht schaden, um zu überprüfen, welches die aktuelle Version ist. Nachdem der Download abgeschlossen ist, muss das Roundcube-Paket noch entpackt werden. Dies geht zum Beispiel mittels des tar-Befehls.

tar xvf roundcubemail-0.9.5.tar.gz
cd roundcubemail-0.9.5
mv {.,}* ..
cd ..
rmdir roundcubemail-0.9.5

Im nächsten Schritt muss eine Konfigurationsdatei erstellt werden, um einen virtuellen Host anzulegen. Dieser Schritt ist Apache spezifisch. Solltet ihr die Installation auf einem anderen Webserver als Apache durchführen, muss ggf. ein ähnlicher Prozess durchlaufen werden. Die Konfigurationsdatei habe ich für meinen Fall “webmail” genannt.

cd /etc/apache2/sites-available
nano webmail

Innerhalb des Nano-Texteditors schreiben wir nun folgenenden Text in die Datei.

<VirtualHost *:80>
  ServerAdmin webmaster@meine-domain.de
  DocumentRoot /var/www/roundcube
  ServerName webmail.meine-domain.de
  ErrorLog /var/log/apache2/webmail.meine-domain.de-error_log
  CustomLog /var/log/apache2/webmail.meine-domain.de-access_log common
</VirtualHost>

Danach speichern und schließen wir die Datei mittels Strg+X. Im nächsten Schritt muss die Konfiguration des V-Hosts aktiviert und vom Apache Server geladen werden.

a2ensite webmail
service apache2 reload

Datenbank anlegen und konfigurieren

Im nächsten Schritt müssen wir die Datenbank für Roundcube anlegen, einen Nutzer einrichten und diesen mit den passenden Rechten versehen.

mysql -u root -p

mysql> CREATE DATABASE IF NOT EXISTS roundcube;
mysql> GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'mein_passwort';
mysql> FLUSH PRIVILEGES;
mysql> quit

Die Phrase “mein_passwort” müsst ihr natürlich durch euer Passwort ersetzen, welches ihr für die Datenbank verwenden wollt. Ganz wichtig ist auch der “FLUSH PRIVILEGES”-Befehl, damit die Rechteänderungen auch sofort ziehen. Ist die Datenbank angelegt, muss ihr noch “Leben eingehaucht” werden. Wir laden also die nötigen Daten aus der .sql-Datei, die im Roundcube-Paket mitgeliefert wurde.

mysql -u roundcube -p"mein_passwort" roundcube < /var/www/roundcube/SQL/mysql.initial.sql

Bevor wir nun mit dem Webinstaller fortfahren können, müssen wir die Datenbankverbindung in der entsprechenden Konfigurationsdatei der Roundcube-Installation eingeben.

cd /var/www/roundcube/config
nano config.inc.php

Innerhalb der Datei muss nun die Beispiel-Zeile mit dem Connection-String durch unsere aktuellen Verbindungsdaten ersetzt werden.

//In folgender Zeile muss mysql durch mysqli, "pass" durch "mein_passwort"
//und roundcubemail durch "roundcube" ersetzt werden
$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

//Das fertige Ergebnis sollte dann so aussehen:
$rcmail_config['db_dsnw'] = 'mysqli://roundcube:mein_passwort@localhost/roundcube

Nun muss die Datei wieder mittels Strg+X gespeichert und geschlossen werden.

Webinstaller und Grundkonfiguration

Wir nähern uns dem Ende des Tutorials. Im nächsten Schritt müssen wir den Roundcubes Webinstaller aufrufen. Dies geht nach dem Anlegen unserer Virtual-Hosts über folgende Adresse:

http://webmail.meine-domain.de/installer

Folgt den Schritten im Webinstaller und schließt das Setup ab. Nach erfolgreichem Abschluss muss der Order des Installers noch entfernt werden, damit niemand mit böswilliger Absicht dadurch Schaden anrichten kann.

rm -rf /var/www/roundcube/installer

Im letzten Schritt kann/sollte nun noch Roundcubes Hauptkonfigurationsdatei angepasst werden.

cd /var/www/roundcube/config
nano config.inc.php

Innerhalb der Config können nun folgende Anpassungen vorgenommen werden.

//enable_installer von 'true' auf 'false' setzen
$config['enable_installer'] = false;

//TLS für die Mailserver aktivieren
//Wir gehen davon aus, dass die Mailserver auf
//mail.meine-domain.de lauten. meine-domain entspricht
//jeweils der Domain hinter dem @-Zeichen.
$config['default_host'] = 'tls://mail.%s';

//Zum Versand denselben Mailserver wie zum Abruf nutzen
$config['smtp_server'] = 'tls://%h';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';

//Titel des Webmail Services angeben
$config['product_name'] = 'Mein Webmail Client';

Nun mit Strg+X schließen und speichern. Und danach kann es losgehen.

Einloggen und Mails abrufen

Roundcube loginNachfolgend zeige ich noch einmal den Loginvorgang. Aufgerufen wird der Webmail-Client über http://webmail.meine-domain.net. Nun möchte ich die Mails meiner E-Mail-Adresse webmaster@code-bude.net per IMAP abrufen. Hierzu gebe ich als Login die E-Mail-Adresse ein und als Passwort mein normales Mail-Passwort.

Durch die Config-Einstellung ($config[‘default_host’] = ‘tls://mail.%s’;) wird als Mailserver nun http://mail.code-bude.net benutzt, da wie oben erläutert %s der Domain hinter dem @-Zeichen, also code-bude.net, entspricht. Durch diese dynamische Zuordnung kann ich

Roundcube interface

mich mit meinen verschiedenen Mail-Adressen (@code-bude.net, @derwirtschaftsinformatiker.de, etc.) einloggen, ohne jedes mal explizit den Mailserver angeben zu müssen.

Mit einem Klick auf “Anmelden” geht es los und die Mails können abgeholt, gelesen und geschrieben werden, wie man es von jedem anderen Webmail-Client gewohnt ist.

6 Kommentare

  1. Sixtus81says:

    Hallo,

    habe heute roudcube auf 1.0.3 und jetzt erhalte ich nur noch eine weiße Seite und folgenden Fehler in der errors:

    [17-Oct-2014 10:20:46 Europe/Berlin] PHP Fatal error: Call to private method rcube_imap_generic::parseCapability() from context ‘rcube_imap_hooks_generic’ in /var/www/roundcube/plugins/imap_hooks/rcube_imap_hooks_generic.php on line 15

    Kann mir jemand dabei helfen?
    Danke

  2. Hallo, Raffi
    Erstmal danke für die Anleitung.
    Bei schritt,
    1 cd /var/www/roundcube/config
    2 nano config.inc.php

    existiert die Datei config.inc.php nicht in dem Ordner “config”.
    Da erstelle ich ein neues (config.inc.php.=das richtig)?
    Mit nur die einer zeille “$rcmail_config[‘db_dsnw’] = ‘mysqli://roundcube:mein_passwort@localhost/roundcube” natürlich ohne “mein_passwort”.
    Wenn ich mit der Webinstaller “webmail.domein.com/installer”fertig konfiguriert bin sollte ich die daten “db.inc.php & main.inc.php” zum downloaden bekommen aber ich bekomme nur “config.ini.php” datei zum downloaden.
    Im lezten Schritte:
    Innerhalb der Config können nun folgende Anpassungen vorgenommen werden.

    //enable_installer von ‘true’ auf ‘false’ setzen
    $config[‘enable_installer’] = false;

    //TLS für die Mailserver aktivieren
    //Wir gehen davon aus, dass die Mailserver auf
    //mail.meine-domain.de lauten. meine-domain entspricht
    //jeweils der Domain hinter dem @-Zeichen.
    $config[‘default_host’] = ‘tls://mail.%s’;

    //Zum Versand denselben Mailserver wie zum Abruf nutzen
    $config[‘smtp_server’] = ‘tls://%h’;
    $config[‘smtp_port’] = 587;
    $config[‘smtp_user’] = ‘%u’;
    $config[‘smtp_pass’] = ‘%p’;

    //Titel des Webmail Services angeben
    $config[‘product_name’] = ‘Mein Webmail Client’;

    Dieser Einstellung existiert nicht in nein “config.ini.php” datei
    auf gut Deutsche gesagt stecke ich in der klemme.

    Nach dem alles irgend wie abgeschlossen ist erscheint nur für paar Minuten das Anmelde fenster vom “webmail.domain.com”also Roundcube anmelde und danach Steht
    It`s work the website…….
    Ich danke dir im voraus das du dies hier liest
    und hoffe das du mir helfen kannst.

    LG
    Deniz

    • Hallo Deniz,

      nur die eine Zeile (“$rcmail_config[‘db_dsnw’] = …”) in der config.inc.php anzulegen reicht nicht. Schau mal mit dem “ls”-Befehl nach, ob in dem Config-Ordner wenigstens die sample liegt? Wenn ja, dann kopiere diese als Vorlage für deine config.inc.php mit folgendem Befehl, wenn du im Config-Ordner bist:

      “cp config.inc.php.sample config.inc.php”

      Nun kannst du in dieser neuen config.inc.php deinen Datenbankpfad eintragen und mit der Installation fortfahren.

      Wobei ich dir leider nicht helfen kann bzw. dein Problem noch nicht ganz verstehe, ist bei folgender Aussage von dir: “[…] fertig konfiguriert bin sollte ich die daten “db.inc.php & main.inc.php” zum downloaden bekommen”

      Habe ich das irgendwo geschrieben, dass man die beiden Dateien downloaden soll? Eigentlich kann/soll/müsste man während der Installation nichts downloaden.

      Viele Grüße,
      Raffael

      • Bei mir war das selbe problem … entweder bei der web config dan im browser eingeben oder das hier versuchen
        #############Code############
        cd /var/www/roundcube/config/
        #############################
        nano db.inc.php.dist
        ############END#############

        dort findest du jetzt einen langen text der wie folgt aussieht:

        <?php
        /*
        +———————————————————————–+
        | Configuration file for database access |
        | |
        | This file is part of the Roundcube Webmail client |
        | Copyright (C) 2005-2012, The Roundcube Dev Team |
        | |
        | Licensed under the GNU General Public License version 3 or |
        | any later version with exceptions for skins & plugins. |
        | See the README file for a full license statement. |
        | |
        +———————————————————————–+

        */

        $rcmail_config = array();

        // PEAR database DSN for read/write operations
        // format is db_provider://user:password@host/database
        // For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
        // currently supported db_providers: mysql, mysqli, pgsql, sqlite, mssql or sqlsrv

        $rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
        // postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
        // Warning: for SQLite use absolute path in DSN:
        // sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646';
        #######usw….#######

        dort finden wir schon was wir brauchen in der zeile 25!
        ändere dort das einfach in
        $rcmail_config['db_dsnw'] = 'mysql://roundcube:MEIN_PASSWORT@localhost/roundcube';

        Wichtig bei MEIN_PASSWORT einfach dein Passwort eingeben!

        Danach wenn du alles geändert hast einfach abspeichern und schließen

        TADA es funktioniert!

        Bei problemen kannst du dich ruhig auch an mich wenden unter nico.raecke@stop-svv.de

        LG Nico RAECKE

  3. Roundcube ist toll und sehr übersichtlich. Wer das Ding aber, wie hier beschrieben, selbst aufsetzt, sollte sehr regelmäßig nach Updates schauen. In der Vergangenheit gab es einige ziemlich kritische Sicherheitslücken.

    • Du findest es übersichtlich ? Ich brauchte echt einige Zeit da durchzusteigen…
      Da sieht man mal wie die Auffassung von sowas auseinander gehen können :D
      Dennoch sehe ich das mit den Sicherheits lücken ebenfalls als kritsch wenn nicht fatal an!
      Ich bin mir aber sicher das UpDates – Fixes kommen :)

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.