In dem meisten Fällen ist es auch sinnvoll, einen Mail Transfer Agent (MTA) auf seinem Server zu installieren, um ihn in die Lage zu versetzen, selber Mails zu verschicken.

Warum ist das sinnvoll?

  • Das System schickt bei Warnungen oder kritischen Zuständen eine Mail an den Nutzer root.
  • Software wie zum Beispiel Wordpress versendet Mails, wenn ein Problem aufgetreten ist
  • Wenn man die "Passwort vergessen"-Funktion von Wordpress oder Seafile nutzen möchte, geht das nur über eine Mail

Allerdings sollte man bei der Konfiguration sehr vorsichtig sein, damit der eigene Server nicht von Spammern missbraucht wird.

Jetzt ist das mit einem Server ohne feste IP, wie ihn die meisten zu hause haben dürften, nicht ganz so einfach, da die meisten Provider aus Spam-Schutz keine Mails annehmen, die direkt von solchen Rechnern geschickt werden.
Aber auch da gibt es eine Möglichkeit, das zu umgehen. Man leitet seine Mails über den SMTP-Server seines eigenen Providers, wie zum Beispiel Google-Mail oder Web.de.

Als MTA hat sich mittlerweile Postfix durchgesetzt, da es im Gegensatz zu Sendmail relativ leicht zu konfigurieren ist.

Ich werde hier die Konfiguration von Postfix mit Google-Mail als SMTP-Relais beschreiben, das hat bei mir auf Anhieb funktioniert. Aber das sollte mit einigen Anpassungen auch mit anderen Providern funktionieren.

Als erstes wird die notwendige Software installiert:

 apt-get install postfix libsasl2-modules bsd-mailx

Das Programm bsd-mailx ermöglicht es, Mails von der Kommandozeile zu erstellen und zu verschicken. Diese Funktion wird von vielen Programmen genutz, daher sollte es direkt mit installiert werden.

Nachdem die Software installiert wurde, kommt man in das Setup von Postfix. Im ersten Dialog wird die Grundkonfiguration von Postfix festgelegt. Wenn man also keine eigene Domain mit fester IP-Adresse besitzt, wählt man hier den Punkt "Internet mit Smarthost" aus.

Postfix Grundkonfiguration

Im nächsten Dialog muss der Mailname eingetragen werden. Per default ist dort der Hostname eingetragen. Das kann man auch so übernehmen.

Postfix MailName

Im dritten Dialog muss jetzt das SMTP-Relais eingetragen werden. Das ist die SMTP-Adresse seines Providers. In diesem Fall ist das "smtp.gmail.com". Falls man die SMTP-Adresse seines Providers gerade nicht zur Hand hat, findet man hier eine recht ausführliche Liste mit Providern.

Postfix SMTP-Relay Config

Damit ist die Grundkonfiguration erstmal abgeschlossen. Jetzt ist allerdings noch etwas Handarbeit nötig, um die Sache ans Laufen zu bekommen.

Zuerst muss die Datei /etc/postfix/main.cf editiert werden. Also die Datei öffnen und folgende Zeilen hinzufügen:

root@bananapi# nano /etc/postfix/main.cf 

smtp_sasl_auth_enable = yes
# noplaintext weglassen, wenn Passwörter im Klartext übertragen werden müssen:
# (nicht empfohlen, nur wenn's anders nicht funktioniert)
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password

# verschluesselung einschalten
smtp_tls_security_level = may 

Dadurch wird Autentifizierung über SASL (Simple Authentication and Security Layer) eingeschaltet und konfiguriert.
Außerdem wird die Verschlüsselung für TLS (Transport Layer Security) eingeschaltet.

Jetzt wird die Datei /etc/postfix/sasl_password erstellt. Dort werden Nutzername und Passwort zur Autentifizierung bei seinem Mail-Provider eingetragen - in diesem Fall ist es Google-Mail

root@bananapi# nano /etc/postfix/sasl_password

smtp.gmail.com IhrUsername:IhrPasswort

Um die Datei abzusichern, macht man sie mit dem Befehl

root@bananapi# chmod 600 /etc/postfix/sasl_password 

nur für den Nutzer root lesbar.

Jetzt muss noch die Postfix-Lookup-Tabelle erstellt werden. Das geht mit dem Befehl

root@bananapi# postmap hash:/etc/postfix/sasl_password

Danach muss Postfix erstmal neu gestartet werden, damit die neue Konfiguration übernommen wird.

root@bananapi# /etc/init.d/postfix restart 

Damit sollte Postfix jetzt in der Lage sein, Mails über Ihren Mail-Acount zu verschicken. Um das zu testen, kann man eine erste Test-Mail von der Kommandozeile verschicken:

root@bananapi# echo "Erste Testmail vom Server" | mail -s"Testmail" yourmailAddress@example.com

Wenn diese Mail nach einiger Zeit dann im Postfach landet, ist es geschafft! Der Server ist jetzt in der Lage, Benachrichtigungs-Mails zu verschicken!

Jetzt ist nur noch eine Sache zu erledigen: standardmäßig werden Systemnachrichten lokal an die Adresse root@yourserverhostname versendet. Damit diese jetzt nicht lokal gespeichert, sondern an eine externe Adresse gesendet werden, muss die Datei /etc/aliases editiert werden.

Dort muss die folgende Zeile hinzugefügt werden.

root: Ihre@mailadresse.de

Damit die Änderungen wirksam werden, muss noch der folgende Befehl ausgeführt werden:

root@bananapi# newaliases

Damit werden ab jetzt Systemnachrichten Ihres Servers an Ihre Mail-Adresse verschickt!!

Comments

Fri, 02/20/2015 - 10:41pm

Hallo Bjoern,

erstklassiger Artikel der auf Anhieb funktioniert hat.
Somit ist mein Raspberry nun auch in der Lage Mails zu verschicken.
Einzige Fehlermeldung beim Versand oder Neustart von Postfix "warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol"
Mails kommen aber trotzdem an. Vielleicht wollen wir uns auch noch über die Absicherung des Servers austauschen. Gerne auch per Mail, da ich hier nicht öffentlich posten will, welche Schritte mir wichtig sind.

Viele Grüße Markus

Tue, 07/07/2015 - 10:53pm

Hallo Bjoern,
hat super funktioniert, kleine Änderung war nötig, da bei mir
das das SMTP-Relais Bildschirm nicht auftauchte, so musste ich in der main.cf Datei selber smtp.gmail.com eintragen, vielleicht hilft dies auch anderen falls dies auchpassiert. Nachher ging alles bestens.
Vielen Dank Nochmals!

István

Thu, 01/28/2016 - 8:09pm

Einfach und genial. Mit dem Kommentar von Istvan hat es auch bei mir sofort geklappt. Danke! (Bananian auf Debian 8 basis)

Add comment

Please insert your mail adress. Your mail address will not be displayed.