So installieren Sie Mailpile unter Ubuntu 14.04

Einführung

In diesem Tutorial installieren wir https://mailpile.is [Mailpile], einen schnellen, sicheren und ansprechenden Webmail-Client unter Ubuntu 14.04.

image: https: //assets.digitalocean.com/articles/mailpile/mailpile-home.png [Startbildschirm von Mailpile]

Mit einem Webmail-Client wie Mailpile können Sie von überall aus auf Ihre E-Mails zugreifen, ohne einen Standard-E-Mail-Client konfigurieren zu müssen. Mailpile ist nur ein Mail-Client, das heißt, es verwaltet nur vorhandene Mail-Accounts.

Am Ende dieses Tutorials haben Sie ein voll funktionsfähiges Droplet, in dem Mailpile mit Nginx als Reverse-Proxy ausgeführt wird.

Beachten Sie in diesem Tutorial, dass sich * Mailpile noch in der Beta-Phase * befindet, was bedeutet, dass Sie auf dem Weg auf Bugs und andere Schwierigkeiten stoßen können. Ihre Daten werden zwischen den Sitzungen nicht gespeichert. (Das heißt, Sie müssen Ihre Kontodaten jedes Mal neu eingeben, wenn Sie den Mailpile-Dienst neu starten.)

Es fehlt auch eine einfache Möglichkeit, als Dienst ausgeführt zu werden. Standardmäßig wird es in Ihrer SSH-Sitzung nur als interaktives Skript ausgeführt. Wir haben ein Upstart-Skript beigefügt, das Screen verwendet, um es im Hintergrund auszuführen, sodass Sie den Webmail-Client so lange wie gewünscht aktiv lassen können. Dies wird jedoch für die Produktion nicht empfohlen.

Voraussetzungen

Bevor wir anfangen, benötigen wir ein paar Dinge:

  • Ein Droplet mit * Ubuntu 14.04 *. Wir empfehlen mindestens 512 MB RAM für ein Mailpile-Setup mit nur wenigen Postfächern. Wenn Sie mehr als ein paar Benutzer erwarten, können Sie die Größe erhöhen

  • Ein Benutzer mit Root-Zugriff. Anweisungen zum Einrichten eines Benutzers mit finden Sie unter this tutorial Sudo-Zugriff auf Ubuntu 14.04

  • Ein SSL-Zertifikat zum Schutz Ihrer E-Mails. Sie können eine von https://www.namecheap.com [Namecheap] oder einer anderen Zertifizierungsstelle erwerben. Wenn Sie kein Geld ausgeben möchten, können Sie auch https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14- 04 [Erstellen Sie Ihre eigenen für die Verwendung mit Nginx] oder holen Sie sich eine von StartSSL

  • Ein Domainname

  • Wenn Sie eine Domain bereit haben, erstellen Sie einen A-Eintrag, der auf Ihr Droplet verweist (z. B. Mailpile.). Anweisungen zum Einrichten von DNS-Einträgen mit DigitalOcean finden Sie unter this tutorial on DNS.

Notieren Sie sich Ihr SSL-Zertifikat und den Speicherort Ihres Schlüssels. Wenn Sie dem Tutorial gefolgt sind, um Zertifikate für die Verwendung mit Nginx zu erstellen, finden Sie diese unter:

  • /etc/nginx/ssl/nginx.crt

  • /etc/nginx/ssl/nginx.key

Das ist es! Wenn Sie alles bereit haben, fahren Sie mit dem ersten Schritt fort.

Schritt 1 - Mailpile herunterladen

In diesem Abschnitt bereiten wir unsere Arbeitsumgebung für die Mailpile-Installation vor.

Zuerst müssen wir uns in unser Droplet einloggen. Wenn Sie SSH noch nicht verwendet haben, lesen Sie this tutorial on SSH. Stellen Sie sicher, dass Sie sich bei einem Benutzer mit sudo-Zugriff anmelden.

Zuerst müssen wir Git installieren. Wir werden Git verwenden, um die Mailpile-Quelle von GitHub zu klonen.

Aktualisieren Sie die Paketlisten von Ubuntu:

sudo apt-get update

Installieren Sie Git:

sudo apt-get install git

Nachdem Git installiert ist, ändern wir unser Verzeichnis an einen Ort, an dem wir arbeiten können. In diesem Fall verwenden wir das Verzeichnis "+ / var +":

cd /var

Mailpile klonen:

sudo git clone https://github.com/mailpile/Mailpile.git

Wir benötigen den Befehl sudo, damit Git ein Verzeichnis innerhalb von + / var + erstellen kann, bei dem es sich um ein Systemverzeichnis handelt.

Wir sind fast bereit, Mailpile zum Laufen zu bringen. Fahren Sie mit Schritt 2 fort, um weitere Anforderungen zu erfüllen.

Schritt 2 - Konfigurieren der Mailpile-Anforderungen

In diesem Abschnitt werden die Anforderungen von Mailpile installiert und konfiguriert.

Lassen Sie uns zuerst pip installieren. pip ist ein Python-Paketmanager mit ein paar Tricks:

sudo apt-get -y install python-pip

Mit pip können wir Mailpiles Anforderungen einfacher installieren. Sie werden sehen, wie in einer Minute, aber zuerst müssen wir noch ein paar Dinge installieren.

Als nächstes müssen wir lxml installieren. lxml ist eine Mailpile-Anforderung, die normalerweise von pip installiert wird. Wir haben jedoch festgestellt, dass die Installation aus unbekannten Gründen fehlschlägt. Aus diesem Grund installieren wir es mit apt-get:

sudo apt-get install python-lxml

Es müssen nur noch ein paar Pakete manuell installiert werden, einschließlich GnuPG und OpenSSL. Dadurch wird eine sicherere Umgebung für unsere Post geschaffen. Einige davon werden wahrscheinlich standardmäßig installiert, wir stellen jedoch Folgendes sicher:

sudo apt-get install gnupg openssl libssl-dev

Wechseln Sie nun in das Mailpile-Verzeichnis:

cd /var/Mailpile

Wir sind jetzt bereit, die Fähigkeiten von pip zu nutzen, um den Rest unserer Anforderungen zu installieren.

Mailpile enthält eine Datei mit dem Namen "+ requirements.txt +", bei der es sich im Grunde um eine Liste von Anforderungen handelt. pip hat die Möglichkeit, diese Liste durchzulesen und jede einzelne automatisch zu installieren. Machen wir also genau das:

sudo pip install -r /var/Mailpile/requirements.txt

Sie sind fertig. Alle Anforderungen wurden installiert und Mailpile ist einsatzbereit. Aber bevor wir dies tun, müssen wir ein paar zusätzliche Schritte unternehmen, um unsere Sicherheit zu erhöhen.

Schritt 3 - Konfigurieren eines Reverse Proxy mit Nginx

In diesem Abschnitt konfigurieren wir Nginx als Reverse-Proxy für Mailpile. Dies erhöht die Sicherheit von Mailpile, ermöglicht die Verwendung eines SSL-Zertifikats und erleichtert den Zugriff auf den Webmail-Client.

Bei Nginx können Sie anstelle des Zugriffs auf Mailpile über "+ https: //: 33411 " auch " https: // mailpile. +" Verwenden. Lass uns anfangen!

Zunächst muss Nginx installiert sein, da dies den größten Teil der Arbeit ausmacht. Also lasst uns Nginx vor allem anderen besorgen:

sudo apt-get install nginx

Nachdem Nginx installiert ist, können wir den Reverse-Proxy einrichten. Bearbeiten wir die Konfiguration von Nginx, um es anzuweisen, unsere Unterdomäne an Mailpile weiterzuleiten.

Wir möchten die ursprüngliche Nginx-Konfigurationsdatei löschen, da sie eine Reihe von Dingen enthält, die wir nicht benötigen. Aber zuerst machen wir ein Backup. Machen Sie zuerst das Verzeichnis:

sudo mkdir /home/backup

Machen Sie jetzt das Backup:

sudo cp -b /etc/nginx/sites-enabled/default /home/backup

Jetzt können wir die Datei ohne Konsequenzen löschen:

sudo rm /etc/nginx/sites-available/default

Stellen wir sicher, dass es tatsächlich weg ist:

ls /etc/nginx/sites-available/

Wenn Sie gerade Nginx installiert haben, sollte der Befehl nichts zurückgeben.

Erstellen Sie jetzt eine neue Datei:

sudo nano /etc/nginx/sites-available/

Jetzt ist es Zeit, den Reverse-Proxy zu konfigurieren. Beginnen wir mit dem ersten Teil. Fügen Sie am Anfang der Datei Folgendes hinzu (die Funktionsweise wird gleich erläutert):

/ etc / nginx / sites-available / default

server {
   listen 80;
   return 301 https://$host$request_uri;
}

Dies weist Nginx an, die eingehenden Anforderungen an HTTPS umzuleiten. In Wirklichkeit wird jedoch versucht, auf etwas umzuleiten, das es noch nicht gibt. Lassen Sie uns einen Ort dafür schaffen:

/ etc / nginx / sites-available / default

server {

   listen 443;
   server_name mailpile.;

   ssl_certificate           ;
   ssl_certificate_key       ;

   ssl on;
   ssl_session_cache  builtin:1000  shared:SSL:10m;
   ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
   ssl_prefer_server_ciphers on;

   access_log            /var/log/nginx/mailpile.access.log;

Hinweis: Stellen Sie sicher, dass sich Ihr Zertifikat und Ihr Schlüssel unter "+ / etc / nginx / ssl / nginx.crt " und " / etc / nginx / ssl / nginx.key " befinden. Aktualisieren Sie andernfalls die Pfade neben " ssl_certificate " und " ssl_certificate_key +" so, dass sie mit Ihrem Zertifikat und den Schlüsselpositionen übereinstimmen.

Was wir soeben eingegeben haben, hat Nginx angewiesen, Port 443 (die Port-Websites mit SSL-Zugriff im Gegensatz zu Port 80) zu überwachen, unser SSL-Zertifikat anzuwenden und SSL zu aktivieren. Jetzt müssen wir tatsächlich etwas an diese neue HTTPS-URL liefern, die wir umgeleitet haben, und SSL aktivieren. Das machen wir als nächstes.

Fügen Sie unter den beiden vorherigen Blöcken Folgendes hinzu:

/ etc / nginx / sites-available / default

   location / {

     proxy_set_header        Host $host;
     proxy_set_header        X-Real-IP $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header        X-Forwarded-Proto $scheme;

     # Fix the "It appears that your reverse proxy set up is broken" error.
     proxy_pass          http://localhost:33411;
     proxy_read_timeout  90;

     proxy_redirect      http://localhost:33411 https://webmail.;
   }
  }

Wenn Sie fertig sind, sollte die fertige Konfigurationsdatei ungefähr so ​​aussehen:

/ etc / nginx / sites-available / default

server {
   listen 80;
   return 301 https://$host$request_uri;
}

server {

   listen 443;
   server_name mailpile.;

   ssl_certificate           ;
   ssl_certificate_key       ;

   ssl on;
   ssl_session_cache  builtin:1000  shared:SSL:10m;
   ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
   ssl_prefer_server_ciphers on;

   access_log            /var/log/nginx/mailpile.access.log;

   location / {

     proxy_set_header        Host $host;
     proxy_set_header        X-Real-IP $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header        X-Forwarded-Proto $scheme;

     # Fix the "It appears that your reverse proxy set up is broken" error.
     proxy_pass          http://localhost:33411;
     proxy_read_timeout  90;

     proxy_redirect      http://localhost:33411 https://webmail.;
   }
  }

Wenn Sie die Standardwebsite nicht ersetzt haben, sondern stattdessen eine Serverblockdatei mit einem anderen Namen erstellt haben, müssen Sie sie mit einem Befehl wie dem folgenden aktivieren:

sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

Die Standardwebsite sollte bereits aktiviert sein.

Bitte lesen Sie diesen https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts Artikel über Nginx-Serverblöcke ] wenn Sie mehr erfahren möchten.

Starten Sie nun Nginx neu, um die Konfiguration neu zu laden:

sudo service nginx restart

Das ist es. Jetzt kann Mailpile unter + https: // mailpile. + Erreicht werden. Möglicherweise müssen Sie die SSL-Warnung akzeptieren, wenn Sie ein selbstsigniertes Zertifikat verwendet haben.

Wenn Sie auf "+ http: // mailpile. +" Zugreifen, wird automatisch zur SSL-Version der Site umgeleitet.

Wir haben Mailpile noch nicht ausgeführt. Wenn Sie diese URLs jetzt besuchen, wird ein 502 Bad Gateway-Fehler angezeigt. Der häufigste Grund für diesen Fehler ist, dass die Mailpile-Anwendung nicht ausgeführt wird.

Fahren Sie mit Schritt 4 fort, um Mailpile auszuführen.

Schritt 4 - Konfigurieren und Ausführen von Mailpile

In diesem Abschnitt werden wir Mailpile starten und so konfigurieren, dass es mit unserem Reverse-Proxy funktioniert.

Stellen Sie sicher, dass wir uns im richtigen Verzeichnis befinden:

cd /var/Mailpile

Geben Sie zum Ausführen von Mailpile Folgendes ein:

./mp

Sie können Mailpile jetzt über die Befehlszeile oder die Weboberfläche erkunden.

Mailpile sollte jetzt unter "+ https: // mailpile. +" Verfügbar sein und sogar mit Ihrem SSL-Zertifikat zu HTTPS umgeleitet werden. Herzliche Glückwünsche!

Sie können + CTRL-C + verwenden und dann + quit + eingeben, um Mailpile zu beenden.

Optional - Machen Sie Mailpile mit Upstart zu einem Dienst

Um sicherzustellen, dass Mailpile immer aktiv und für die Bearbeitung Ihrer E-Mails bereit ist, können Sie Mailpile mithilfe von Upstart in einen Dienst konvertieren. Folgen Sie https://www.digitalocean.com/community/tutorials/the-upstart-event-system-was-ist-und-wie-zu-verwenden-diesem] wunderbaren Tutorial, um Anweisungen zu erhalten.

Da sich Mailpile in der Beta-Phase befindet, wurde es noch nicht ordnungsgemäß dämonisiert. Außerdem ist eine interaktive Befehlszeile erforderlich, sodass Sie das Python-Skript nicht direkt ausführen können. Dieses Upstart-Skript ist eine * hacky * Methode, um die Python-App als Dienst über https://www.digitalocean.com/community/tutorials/how-to-install-and-use-screen-on-an-ubuntu- auszuführen. Cloud-Server [Bildschirm]:

sudo nano /etc/init/mailpile.conf

/etc/init/mailpile.conf

description "Mailpile Webmail Client"
author      "Sharon Campbell"

start on filesystem or runlevel [2345]
stop on shutdown

script

   echo $$ > /var/run/mailpile.pid
   exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp

end script

pre-start script
   echo "[`date`] Mailpile Starting" >> /var/log/mailpile.log
end script

pre-stop script
   rm /var/run/mailpile.pid
   echo "[`date`] Mailpile Stopping" >> /var/log/mailpile.log
end script

Dieses Skript startet Mailpile und hält es aufrecht, solange die Bildschirmsitzung ausgeführt wird. Die Bildschirmsitzung wird nicht ordnungsgemäß beendet. Sie müssen die Bildschirmsitzung daher manuell beenden, wenn Sie Mailpile beenden möchten.

Mit diesem Skript können Sie Mailpile starten mit:

sudo start mailpile

Dies führt zu einer Screen-Sitzung mit dem Namen * .mailpile_init *, die dem Benutzer * root * gehört.

Die anderen Upstart-Befehle funktionieren jedoch nicht. Sie müssen die Bildschirmsitzung manuell beenden. Wenn der Dienst abstürzt oder beendet wird, müssen Sie ihn erneut starten und alle Ihre Einstellungen zurücksetzen.

Schritt 4 - Erste Schritte mit Mailpile

Dieser Abschnitt behandelt die grundlegende Verwendung von Mailpile über die Webmail-Oberfläche unter + https: // mailpile. +.

Der folgende Bildschirm wird angezeigt, wenn Sie Mailpile zum ersten Mal besuchen.

image: https: //assets.digitalocean.com/articles/mailpile/mailpile-home.png [Startbildschirm von Mailpile]

Wählen Sie eine Sprache aus dem Dropdown-Menü.

Klicken Sie auf die Schaltfläche * Beginnen *.

Erstellen Sie ein neues Passwort und geben Sie es zweimal ein.

Klicken Sie auf die Schaltfläche * Start using Mailpile *.

Der Anmeldebildschirm: Bitte geben Sie das gerade erstellte Passwort ein.

Fügen Sie mit der Schaltfläche * + Konto hinzufügen * ein neues Konto hinzu.

image: https: //assets.digitalocean.com/articles/mailpile/9OPj3Or.png [Ein neues Konto hinzufügen]

Von hier aus müssen Sie Details für ein E-Mail-Konto eingeben, das Sie besitzen. Sie sollten die E-Mail-Adresse und das Passwort für das jeweilige E-Mail-Konto eingeben. Mailpile versucht dann, mit diesen Anmeldeinformationen eine Verbindung zu Ihrem Konto herzustellen. Dies kann einige Minuten dauern.

Sie können die Anmeldeinformationen * Mail senden * und * Mail empfangen * auch manuell eingeben, wenn Mailpile sie nicht selbst ermitteln kann.

Sobald Sie sich angemeldet haben, wird der folgende Bildschirm angezeigt:

Versuchen Sie, eine Test-E-Mail für das Konto zu senden und zu empfangen, das Sie Mailpile zu einem anderen E-Mail-Konto hinzugefügt haben. Wenn dies erfolgreich ist, wissen Sie, dass Mailpile mit Ihrer E-Mail-Adresse arbeitet.

  • Andere Mailpile-Funktionen *

Mailpile bietet auch eine Vielzahl von Verschlüsselungsoptionen:

image: https://assets.digitalocean.com/articles/mailpile/Nh2yptT.png [Mailpiles Verschlüsselungsoptionen]

Fazit

Informationen zum Einstieg in Mailpile finden Sie unter FAQ.

Um weitere Konfigurationsoptionen zu erhalten, führen Sie "+ help +" in der Mailpile-Befehlszeile aus.

Herzlichen Glückwunsch, Sie haben jetzt Ihren eigenen Webmail-Client, Mailpile, der auf einem Ubuntu 14.04-Droplet ausgeführt wird. Es ist vollständig mit SSL ausgestattet und leitet automatisch zur HTTPS-Version Ihrer Site weiter. Sie können jetzt Ihre E-Mail-Konten einrichten und Ihre Kontakte, E-Mails, Kategorien und mehr mit der schönen Oberfläche von Mailpile verwalten. Habe Spaß!