Passwort vergessen?

Benutzername vergessen?

Alles rund um IT, Web und Entwicklung.
Von Nutzern für Nutzer.

Postfix als Mail Relay Agent auf dem Raspberry Pi



Um auf dem Raspberry Pi Mails verschicken zu können wird ein Mail Transfer Agent benötigt. Am einfachsten ist es die Mails an einen bestehenden Mailserver (z.B. GMX, GMail) weiterzuleiten.



Diese Aufgabe übernimmt ein Mail Relay Agent. Früher kam hier das etwas umständlich zu konfigurierende Sendmail zum Einsatz. Heutzutage greift man besser auf Postfix zurück.


Installation


Im ersten Schritt installieren wir Postfix.

apt-get install postfix

Bei der Installation werden wir gefragt wie Postfix konfiguriert werden soll. Hierbei wählen wir die Option Satellitensystem.



Nun fragt Postfix nach dem System E-Mail Namen. Diesen können wir in der Regel direkt übernehmen.

Im nächsten Schritt tragen wir den SMTP-Relay-Server ein. Dies ist der SMTP Server über welchen Später die Mails versendet werden (z.B. GMX).



Abschließend wird der Dialog mit OK bestätigt.


Konfiguration


Nachdem Postfix auf dem Raspberry Pi installiert ist müssen wir noch einige Einstellungen betreffend dem E-Mail Versand und der Authentifizierung treffen.

Authentifizierung


Zunächst die Datei /etc/postfix/main.cf mit dem Editor nano öffnen und die nachfolgenden Zeilen anfügen.

nano /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password


Hinweis: Die Option noplaintext ist nicht mit jedem E-Mail Server kompatibel. Beispielsweise muss diese Option beim Webhoster All-Inkl weggelassen werden. Die Zeile würde dann also wie folgt aussehen.

smtp_sasl_security_options = noanonymous

Jetzt erstellen wir noch die Datei mit den Zugangsdaten am Mailserver.

nano /etc/postfix/sasl_password

smtp.foxplex.com benutzername:passwort

Damit die Datei nur vom Besitzer eingesehen werden kann passen wir die Berechtigungen noch an.

chmod 600 /etc/postfix/sasl_password

Um die Daten jetzt noch in die Datenbank von Postfix aufzunehmen verwenden wir den Befehl postmap.

postmap hash:/etc/postfix/sasl_password


Absender


Standardmäßig werden Mails jetzt als Benutzer@Hostname versendet. Einige Mailserver akzeptieren nur E-Mails von öffentlich bekannten (echten) Absendern. Daher passen wir die Zuordnungen noch an.
Hierzu wieder die Konfigurationsdatei /etc/postfix/main.cf öffnen und die nachfolgende Zeile anfügen.

sender_canonical_maps = hash:/etc/postfix/sender_canonical

Die entsprechende Datei legen wir in diesem Zuge auch gleich an und füllen sie mit Inhalt.

nano /etc/postfix/sender_canonical

root status@example.com
www-data www@example.com


Hiermit wird dem Benutzer Root die Mailadresse status@example.com zugeordnet. Gleiches gilt für den Benutzer des Webservers, welchem die Adresse www@example.com zugeordnet wird.

Auch hier müssen wir die Daten mittels postmap wieder in die Datenbank aufnehmen.

postmap /etc/postfix/sender_canonical

Zum Abschluss nehmen wir Postfix noch in den Autostart auf und starten den Dienst neu.

update-rc.d postfix defaults
service postfix restart



Test


Abschließend testen wir noch ob die Mail auch ordnungsgemäß versendet wird.

(
   echo "Subject: Testnachricht"
   echo " "
   echo "Dies ist ein Test"
   echo " "
) | /usr/bin/mail -s "Testnachricht" empfaenger@example.com


Sollte die Mail nicht ankommen ist ein Blick in die Log Datei meist hilfreich.

cat /var/log/mail.log


Fazit


Im Vergleich zu Sendmail ist die Konfiguration von Postfix recht übersichtlich. Auf dem Raspberry Pi funktioniert Postfix ebenfalls sehr performant ohne wertvolle Ressourcen zu fressen.

Quellen: Postfix Logo, Raspberry Pi Logo

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Hinterlasse einen Kommentar

Michael Kostka

28.05.2014 09:16

Hallo CP,

das Szenario mit den IP Cams ist mit Postfix möglich.
In der Konfiguration /etc/postfix/main.cf muss hierzu folgende Zeile aktiv sein:

inet_interfaces = all

Damit kannst auch von den IP Cams aus Mails verschicken.

Viele Grüße
Michael

CP

24.04.2014 17:03

Hallo,

erstmal Danke für Dein Tutorial. Ich hab (noch) keinen Rasberry, aber trotzdem schon eine Frage dazu.

Ich habe folgendes Problem. Bei mir laufen 2 IP-Webcams die nur Emails unverschlüsselt an einen smtp-Server mit Port 25 versenden können. Die werden ja im Internet immer seltener, alle meine Provider verlangen jetzt eine verschlüsselte Verbindung.

Meine Idee wäre jetzt, einen Rasberry, wie von Dir beschrieben, in mein lokales Netz zu hängen. Ich bin mir nur nicht sicher ob Postfix auch den Port 25 auf macht und von anderen Rechnern im Netz eMails empfängt, um sie dann weiterzuleiten. Der lokale Port:25 des RPI sollte nur in meinem Netz erreichbar sein.

Kann ich jetzt in einem anderen Rechner der RPi als SMTP-Server eintragen und dieser versendet die eMail dann mit SSl an meinen Mailprovider? In deinem Beispiel testet du die eMail ja nur lokal auf dem RPi, nicht von einem anderen Rechner aus.

Thanx a lot, CP

Michael Kostka

30.03.2014 10:28

Hallo Markus,

per Standard ist in der Konfigurationsdatei bereits

smtp_use_tls=yes

aktiviert. Je nach Provider müsstest du dem Relayhost noch einen Port mitgeben.

relayhost = smtp.foxplex.com:465

Dann sollten die Mails auch verschlüsselt übertragen werden.

Viele Grüße
Michael

Markus

27.03.2014 09:03

Hallo!

Gelten die Einstellungen auch für SSL-Mails?

Gruß
Markus

RGuide

20.12.2013 15:34

Tolles Tutorial. Werde es gleich mal ausprobieren!