Nextcloud: Web-Mail mit RainLoop

Nextcloud Logo

Die Cloud ist heutzutage ja der zentrale Dreh- und Angelpunkt in der digitalen Welt. Wer es mit Nextcloud geschafft hat, sich aus den Fängen der großen Cloud-Anbieter zu befreien, der möchte sicherlich möglichst viele Features auch über die eigene Cloud nutzen. Neben der Verwaltung von Dateien, Kontakten, Kalendern, u.v.m., ist es mit der App RainLoop auch möglich, die komplette E-Mail-Kommunikation in die selbstgehostete Cloud zu verlegen.

Update-Historie (letztes Update: 29.09.2018)
  • 29.09.2018:
    • Die RainLoop App für Nextcloud wird nun doch wieder weiterentwickelt und ist somit auch für Nextcloud 14 verfügbar.
  • 23.07.2018:
    • Hinweis mit aufgenommen, dass die RainLoop App für Nextcloud vermutlich nicht mehr weiterentwickelt werden wird.

Web-Mail mit Nextcloud: RainLoop oder Mail-App

Für das Senden und Empfangen von E-Mails stehen im Nextcloud App Store zwei unterschiedliche Apps bereit: RainLoop und die Nextcloud-eigene App Mail.

„Mail“ ist dabei (im Moment noch) ein ziemlich rudimentärer Webmailer mit einem recht geringen Funktionsumfang (beispielsweise ist es damit nicht möglich, E-Mail-Signaturen zu verwenden). Evtl. werden fehlende Funktionen in Zukunft noch nachgereicht. Im Moment taugt die App (meiner Meinung nach) allerdings noch nicht dazu, einen „richtigen“ E-Mail-Client zu ersetzen.

Einen sehr viel größeren Funktionsumfang bietet RainLoop. Dieser Webmailer ist schon seit einiger Zeit auf dem Markt und ist ursprünglich eine eigenständige Webanwendung, die (wie Nextcloud) im Normalfall selbst gehostet wird. Mit der Nextcloud-App gibt es aber nun die Möglichkeit, RainLoop innerhalb von Nextcloud zu nutzen, so dass „alles aus einem Guss wirkt“.

Welche der beiden Webmailer nun der bessere ist, kann man pauschal nicht sagen. Am besten einfach mal beide Apps ausprobieren.

In diesem Artikel soll es nun um die Installation und Konfiguration von RainLoop in Nextcloud gehen. Die Einrichtung ist zwar relativ einfach, dennoch gilt es, einige Schritte zu beachten.

Installation

RainLoop muss nicht separat installiert werden, sondern kann einfach über den Nextcloud App Store bezogen werden. Dazu einfach im App Store unter der Kategorie Kommunikation nach RainLoop suchen und aktivieren.

Nach ein paar Augenblicken sollte die App installiert worden sein und man findet in der Nextcloud-Menüleiste einen zusätzlichen Eintrag für Mail.

Konfiguration

Bevor man RainLoop nun nutzen kann, muss die Anwendung zunächst einmal konfiguriert werden. Dazu findet man in Nextcloud in den Admin-Einstellungen unter Zusätzliche Einstellungen den Punkt Go to RainLoop Webmail admin panel.

Nach einem Klick meldet man sich nun an:

  • Benutzername: admin
  • Passwort: 12345

Ja, dies ist ein Standard-Passwort, dass immer gleich ist und sofort geändert werden sollte. Dazu in das Menü Security wechseln und ein neues Passwort unter Admin Panel Access Credentials vergeben.

Nach diesem vielleicht wichtigsten Schritt können sämtliche anderen Optionen nach Bedarf gesetzt werden. Beispielsweise empfiehlt es sich, unter General Deutsch als Sprache zu wählen, damit die Benutzer eine Deutsche Oberfläche präsentiert bekommen.

Einen Punkt sollte man noch gleich mit anpassen: RainLoop präsentiert auf der Admin-Seite eine Warnung:

Warnung!

RainLoop data folder is accessible. Please configure your web server to hide the data folder from external access. Read more here: https://www.rainloop.net/docs/installation

Hintergrund ist, dass das Datenverzeichnis von RainLoop aus Sicherheitsgründen nicht direkt aus dem Internet erreichbar sein sollte, sondern nur über die Anwendung selbst.

Hier ist es notwendig, eine kleine Anpassung an der Webserver-Konfiguration vorzunehmen. Ich gehe im Folgenden davon aus, dass der Webserver wie im Artikel Nextcloud auf Ubuntu Server 18.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban eingerichtet wurde. Wenn ein anderer Webserver oder eine andere Konfiguration zum Einsatz kommt, müssen die folgenden Schritte evtl. noch ein wenig angepasst werden.

Die Änderung muss im vHost für Nextcloud vorgenommen werden:

nano /etc/nginx/conf.d/meinedomain.de_nextcloud.conf

Hier fügen wir unter dem letzten location-Block (aber noch vor der schließenden Klammer des server-Blocks) folgenden Inhalt ein:

location ^~/nextcloud/apps/rainloop/app/data {
    deny all;
}

Durch die Änderungen am vHost muss der Webserver noch neu gestartet werden:

service nginx restart

Nun kann man wieder zu RainLoop wechseln und nach einem Refresh der Seite (STRG + F5) sollte die Warnung verschwunden sein.

Einrichtung von E-Mail-Konten

Die Einrichtung von E-Mail-Konten unterscheidet RainLoop von vielen anderen Mail-Clients. Um dem Benutzer möglichst viel Arbeit beim Hinzufügen von Accounts abzunehmen, muss der Administrator Mail-Domains vordefinieren. Die Benutzer können sich daraufhin ganz einfach mit ihrer Mail-Adresse anmelden, ohne die üblichen (technischen) Details wie IMAP/SMTP-Server-Adressen, Ports, etc. kennen zu müssen.

Dazu einfach in der Admin-Oberfläche von RainLoop den Punkt Domains wählen. Hier ist Google Mail bereits aktiv, so dass @gmail.com Adressen ohne weiteres Zutun funktionieren sollten. Wenn man nun E-Mail-Adressen von anderen Anbietern (z.B. GMX, Web.de, etc.) nutzen möchte, dann muss man diese hier als Domain konfigurieren.

Dazu einfach den Button Domain hinzufügen klicken. Wichtig ist nun, dass die komplette Domain als Name eingetragen wird. Bei GMX wäre dies also „gmx.de“ und eben nicht „gmx“, ansonsten ist eine Anmeldung an RainLoop mit einer@gmx.de Adresse nachher nicht möglich. An dieser Stelle können übrigens auch Wildcards verwendet werden: Möchte man daher sowohl Anmeldungen mit @gmx.de und @gmx.net zulassen, kann als Domain einfach „gmx.*“ eingetragen werden.
Die weitere Konfiguration (IMAP- und SMTP-Server, sowie die dazugehörigen Ports, etc.) ist abhängig vom Mail-Provider. Diese Informationen findet man häufig auf den Hilfeseiten der jeweiligen Anbieter (z.B. Serverdaten für IMAP und SMTP bei GMX).

RainLoop: Domain für GMX hinzufügen
RainLoop: Domain für GMX hinzufügen

Webmail-Oberfläche

Die Anmeldung an RainLoop ist für Benutzer dank der „Admin-Vorarbeit“ nun besonders einfach: Im Nextcloud-Menü einfach das Mail-Symbol wählen und sich mit der entsprechenden Mail-Adresse und dem Passwort des Mail-Accounts (nicht das Passwort des Nextcloud-Accounts) einloggen. Nun können sofort Mail geschrieben und empfangen werden.

Bessere Integration in Nextcloud

Leider ist RainLoop als eigenständige Webanwendung (noch) nicht so gut in Nextcloud integriert. Dies merkt man z.B., wenn man eine Mail verfassen möchte: Hier kann man nicht aus den bestehenden Kontakten aus Nextcloud wählen.

Die Integration mit Nextcloud kann daher nicht etwas verbessert werden. RainLoop kann dabei nicht direkt auf die Nextcloud-Kontakte zugreifen, sondern verwaltet diese in einer eigenen Datenbank. Diese muss dazu erst einmal auf der Kommandozeile angelegt werden:

mysql -u root -p

Nach der Eingabe des Root-Passworts kann die Datenbank für RainLoop angelegt werden:

create database rainloop_db;
create user rainloop_db_user@localhost identified by 'MeInPasSw0rT';
grant all privileges on rainloop_db.* to rainloop_db_user@localhost;
flush privileges;
exit;

Zurück in der Admin Oberfläche findet man unter dem Punkt Kontakte die Einstellungen zur Verwaltung der Kontakte.

Hier konfiguriert man zunächst einmal die Datenbank-Verbindung:

  • Typ: MySQL
  • DSN: mysql:host=localhost;port=3306;dbname=rainloop_db
  • Benutzer: rainloop_db_user
  • Passwort: Das oben vergebene Passwort

Nun sollte bei einem Klick auf Testen der Button nach ein paar Augenblicken grün werden. Das ist das Zeichen, dass die Datenbank-Verbindung erfolgreich aufgebaut werden konnte.

Zu guter Letzt aktiviert man nun weiter oben noch die Optionen Kontakte aktivieren (damit RainLoop überhaupt Kontakte unterstützt) und Kontakte-Synchronisierung erlauben (mit externem CardDAV-Server). Letzteres wird benötigt, damit die Synchronisierung mit Nextcloud funktioniert.

Nun loggt man sich wieder über Nextcloud auf einen Mail-Account bei RainLoop ein. In den Optionen des Benutzers (Zahnrad unten links) findet man nun den Menüpunkt Kontakte. Hier kann man zunächst einmal die Synchronisierung mit Nextcloud ermöglichen (Remote-Synchronisierung aktivieren).

Die CardDAV-URL findet man in der Kontakte-App von Nextcloud: Einfach beim gewünschten Adressbuch auf das Menü klicken (die drei Punkte) und den Eintrag Link kopieren wählen.

CardDAV-URL in Nextcloud ermitteln
CardDAV-URL in Nextcloud ermitteln

Diese URL kann man dann nebst Benutzername und Passwort (von Nextcloud) in den RainLoop-Kontakte-Einstellungen hinterlegen.

RainLoop: Kontakte (Einstellungen)
RainLoop: Kontakte (Einstellungen)

Die obere Option (Empfänger automatisch zu Ihrem Adressbuch hinzuzufügen) ist ein zweischneidiges Schwert: Auf der einen Seite ist es sicher praktisch, wenn Mail-Adressen automatisch nach Nextcloud synchronisiert werden, auf der anderen Seite werden kann sämtliche Empfänger-Adressen ungefragt zu Nextcloud übernommen. Wer oftmals Mails an die unterschiedlichsten Empfänger versendet, will diese Option wohl deaktivieren, da ansonsten die Kontakte-App von Nextcloud regelrecht „zugemüllt“ wird.

Nun können die Kontakte zwischen RainLoop und Nextcloud einfach über den Kontakte-Button und das erweiterte Menü (drei Balken) in RainLoop synchronisiert werden.

RainLoop: Kontakte synchronisieren
RainLoop: Kontakte synchronisieren

Fazit

RainLoop ist ein fortschrittlicher Webmailer mit einem gut durchdachten Konzept und einfacher Bedienung. Zwar merkt man hier und da, dass RainLoop als eigenständige Web-Anwendung neben Nextcloud läuft, dennoch klinkt sich der Webmailer nahtlos in die eigene Nextcloud ein.

Wer seine Mails direkt über Nextcloud verwalten möchte und keinen „schwergewichtigen“ E-Mail-Client wie Outlook oder Thunderbird nutzen möchte, der wird mit RainLoop auf jeden Fall auf seine Kosten kommen.

Weiterführende Artikel

Links

28 Kommentare zu „Nextcloud: Web-Mail mit RainLoop“

  1. Servus!

    Toller Artikel, vielen Dank. Mir ist aufgefallen, dass 127.0.0.1 nicht akzeptiert wurde, wohingegen localhost schon.

    Test fehlerhaft:
    mysql:host=127.0.0.1;port=3306;dbname=rainloop_db

    Test erfolgreich:
    mysql:host=localhost;port=3306;dbname=rainloop_db

    Viele Grüße, Carsten

    1. Hi Carsten,

      seltsam, bei mit hat 127.0.0.1 immer funktioniert. „localhost“ dürfte er aber auch jeden Fall akzeptieren.
      Ich habe es mal im Artikel geändert, danke für den Hinweis.

      Gruß,
      Jan

  2. Christian Engel

    Leider finde ich Rainloop nicht im Nextcloud AppStore. Sie scheint entfernt worden zu sein. Was ist der Grund dafür?

    Wie kann ich ohne den Appstore Rainloop in Nextcloud bzw. auf Syno installieren?

    Kann mir jemand das App-Paket, das zuvor im Appstore stand, zusenden oder einen Link geben?

    Als letzte Möglichkeit sehe ich, die Installation direkt im Webserver der Syno vorzunehmen.

    Gruß
    KriCrack

    Meine CFG: Synology DS415+, Nextcloud 12…

    1. Hi Christian,

      leider wird das RainLoop-Plugin für Nextcloud nicht mehr weiterentwickelt, wenn sich kein neuer Maintainer für das Projekt findet (siehe GitHub).
      Das kommt nun auch für mich völlig überraschend. Daher würde ich momentan erst einmal abwarten und RainLoop für Nextcloud nicht installieren. Evtl. ist ja auch die Mail-App eine Alternative.

      Du kannst RainLoop natürlich auch als eigenständige Web-Anwendung neben Nextcloud installieren. Hier fehlt dann halt nur die direkte Integration in Nextcloud. Mal sehen, vielleicht bereite ich da mal einen Artikel vor, der die genaue Vorgehensweise beschreibt.

      Gruß,
      Jan

  3. Hallo Jan
    Super Anleitung…kennst du in diesem Zusammenhang eine gute Anleitung für einen eigenen Mailserver (z.B. mit Postfix) auf Basis deiner Anleitung zu Nextcloud auf Ubuntu Server 18.04 LTS?
    Grüsse
    Frank

    1. Hi Frank,

      um einen eigenen Mail-Server habe ich immer einen Bogen gemacht, da dies doch sehr aufwendig ist. Auch wenn die Einrichtung klappt, hat man dann immer Probleme, dass die Mails deines privaten Mailservers nicht als Spam abgetan werden.
      Als Alternative habe ich für mich allerdings die „Light-Variante“ mit sSMTP für mich entdeckt (siehe Artikel hier). Das ist sehr viel weniger Aufwand, weil hier einfach ein beliebiger SMTP-Server dahinter steht.

      Gruß,
      Jan

  4. Pingback: greencardorganization

  5. Hallo Jan,

    wie immer eine super Anleitung!
    Leider bekomme ich eine Fehlermeldng bei der Synchronisation der Kontakte. Ich habe aber auch eine Fehlermeldung in den Einstellungen, das mein Webserver bezüglich WebDav und Caldav nicht korrekt eingerichtet ist. Die Config habe ich aber schon überprüft. Hast du hier eine Idee?

    Grüße
    Wolfgang

    1. Hallo Wolfgang,

      ich tippe hier mal auf ein Problem mit der Webserver-Config. Was sagt denn die Fehlermeldung konkret? Vielleicht kann man das Problem ja ein wenig eingrenzen.

      Gruß,
      Jan

  6. Hallo Jan,

    die FM in RainLoop lautet nur: „Fehler bei Kontakte-Synchronisierung“. Die FM im Admin-Account unter „Einstallungen“ übersicht lautet: „Dein Web-Server ist nicht richtig eingerichtet um „/.well-known/caldav“ aufzulösen. Weitere Informationen findest Du in der Dokumentation.“ Das gleiche für CardDav.
    Unter /etc/nginx/sites-enabled habe ich die Werte:
    “ location = /.well-known/carddav {
    return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
    }

    location = /.well-known/caldav {
    return 301 $scheme://$host:$server_port/nextcloud/remote.php/dav;
    }
    “ in den Dateien meineDomain.de.conf und meineDomain.de_nextcloud.conf eingetragen.
    Achso: Nextcloud ist auf Version 16.0.5

    Gruß
    Wolfgang

    1. Hallo Wolfgang,

      die -well-known Verzeichnisse müssen immer auf der Second-Level-Domain basieren, also https://meinedomain.de/.well-known/…, auch wenn du Nextcloud in einem Unterverzeichnis installiert hast. Die liegt mit Sicherheit an der Webserver-Konfiguration (vHosts). Wenn du hier einen HTTP 404 bekommst, dann schau mal das nginx error.log. Hier sollte erwähnt werden, worauf der Webserver zugreifen möchte. Diese Information in Kombination mit den Infos im vHost (Gateway-Host) sollten dich auf die richtige Fährte bringen.

      Gruß,
      Jan

  7. Ich habe Nextcloud als Docker Image laufen.
    Die Installation von RainLoop hat auch problemlos funktioniert.
    Allerdings fehlt mir jetzt noch die DB für die Kontakte.
    Die Anleitung ist ja nicht für Docker geschrieben. Wie könnte das da aussehen?

    1. Hallo Ralf,

      du kannst hier ja einen beliebigen MySQL/MariaDB-Server angeben. Dieser kann auch auf dem Docker-Host liegen. Das muss dann in den Einstellungen von Rainloop so angegeben werden (also mit IP und so).
      Du kannst dir allerdings auch auf dem Docker-Image einen MySQL/MariaDB-Server aufsetzen, dann bleibt es für Rainloop alles „lokal“.

      Gruß,
      Jan

  8. Ich habe Rainloop vor Ewigkeiten in einer Nextcloud installiert. Jetzt haben sich bei einigen Email Konten die Passwörter geändert und ich habe keine Ahnung wie ich diese nun in Rainloop ändern kann.

    Im Admin Bereich wird mir nichts zum ändern von einzelnen Email Passwörtern angezeigt

    1. Hi,

      müsste das neue Passwort nicht nach einem Log-Out wieder gesetzt werden können? Es sollte auf jeden Fall über die E-Mail-Einstellungen (und nicht die Admin-Einstellungen) zu setzen sein.

      Gruß,
      Jan

      1. Vielen Dank es ging direkt im Rainloop, habs hinbekommen, manchmal ist man blind.

        Ich denke ich werde meine Nextcloud neu aufsetzen, ich habe gesehen, dass es ein direktes Plugin bzw. eine App for Rainloop in Nextcloud gibt, ich hatte meines händisch installiert

  9. Hallo Jan,
    Auch wenn der Eintrag schon etwas älter ist, habe ich eine Frage dazu. Aktuell ist Rainloop App für die Nextcloud verfügbar. Ich würde diese gerne für meine E-Mail Accounts benutzen. Im Netz finden sich mehrere Kommentare zur Sicherheit und zur Speicherung des Passworts von Rainloop in der unverschlüsselten Datenbank des Nextcloud Host. Hast du dazu einen Hinweis, wie man das besser absichern kann?
    Vielen Dank und Grüße
    Thomas

    1. Hi Thomas,

      ich selbst nutze Rainloop/NC nicht (mehr). Mir ist hier auch nichts dergleichen bekannt. Hast du vielleicht mal einen Link für mich?

      Das Speichern der Passwörter in der NC-Datenbank im Klartext wäre in der Tat etwas unschön. Allerdings bräuchte ein Angreifer dann eben auch Zugriff auf die Datenbank. Wenn ein Angreifer Vollzugriff auf die DB hat, dann ist eh etwas schief gelaufen und man muss die Cloud als kompromittiert betrachten.

      Gruß,
      Jan

        1. Hi Thomas,

          schwer zu beurteilen: Der Issue für ownCloud ist hier (noch offen), für Nextcloud hier (geschlossen).
          Was passiert, wenn du das im oC genannte SQL-Statement ausführst (select * from oc_preferences where configkey = 'rainloop-autologin-password';)? Werden hier deine Passwörter im Klartext ausgegeben?
          Wenn ja, dann muss das eindeutig beim Entwickler der App behoben werden. Als Admin/User kannst du hier leider nichts machen.

          Die Alternative zu Rainloop (wo die Integration ja eher so lala ist), ist die offizielle Nextcloud Mail App. Leider ist diese aber gefühlt noch sehr „work in progress“ und viele Dinge funktionieren noch nicht richtig bzw. es fehlen einfach essentielle Features. Testweise kannst du dir die App aber mal installieren (kommt sich mit Rainloop nicht ins Gehege) und ausprobieren.

          Gruß,
          Jan

  10. Danke für die tolle Anleitung. Leider hat sich ein Fehler eingeschlichen: Der Location-Block
    muss lauten:

    location ^~/apps/rainloop/app/data {
    deny all;
    }

    Also ohne Leerzeichen zwischen „^“ und „~“ :)
    Nur damit alle Nachfolger sich die Mühe sparen :)

      1. Hallo Jan,

        ich bin mir da garnicht mehr so sicher :), zumal du das offensichtlich in deinem Beitrag korrigiert hast. Bei mir in der Konfiguration lautet die Zeile (eben nochmals nachgesehen):
        location ^~/apps/rainloop/app/data {

        Also so, wie jetzt in deinem Beitrag. Danke nochmals für den Artikel, damit gelang die Konfiguration von Rainloop im Fluge :)

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert