Good to Know Database

Raspbian Wheezy: Postfix soll E-Mails über SMTP-Relay-Server versenden


Die folgende Anleitung soll Ihnen zwei Möglichkeiten zeigen, wie Sie von einem internen Mailserver über einen SMTP-Relay-Server oder auch Smarthost genannt, E-Mails an beliebige externe E-Mail-Adressen versenden können. Es werden hier die Mailserver von Web.de, GMX.net, GoogleMail.com, GMail.com und T-Online.de als Smarthosts verwendet. Damit Sie E-Mails über einen SMTP-Relay-Server versenden können, benötigen Sie in der Regel einen gültigen Account auf diesem Mailserver.

Das folgende Tutorial setzt voraus, dass Sie bereits wie auf der Seite Raspbian Wheezy: Mailserver mit Postfix und Cyrus einrichten beschrieben einen Mailserver auf Ihrem Raspberry Pi unter Raspbian installiert haben.

E-Mails eines einzelnen Benutzers weiterleiten

In diesem Abschnitt wird Postfix so konfiguriert, dass nur ein einzelner Benutzer E-Mails an beliebige externe Adressen versenden kann.

Die Postfix-Konfiguration kann mit dem Befehl postconf bearbeitet werden. Zuerst geben wir die Adresse des Smarthosts mit dem Parameter relayhost an.

pi@raspberrypi ~ $ sudo postconf -e 'relayhost = [mail.gmx.net]'

Durch den Parameter smtp_sasl_auth_enable wird die SASL-Authentification für SMTP aktiviert.

pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_auth_enable = yes'

Da wir keine anonyme Anmeldung verwenden wollen, wird der Parameter smtp_sasl_security_options mit dem Wert noanonymous gesetzt.

pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_security_options = noanonymous'

Damit Postfix dem lokalen Benutzernamen eine gültige Absenderadresse zuordnen kann, geben Sie mit dem Parameter sender_canonical_maps den Pfad zur entsprechenden Zuordnungstabelle an. Sendet der lokale Benutzer eine E-Mail, ändert Postfix die lokale Absenderadresse entsprechend der hier eingetragenen Zuordnung in eine externe Adresse um.

pi@raspberrypi ~ $ sudo postconf -e 'sender_canonical_maps = hash:/etc/postfix/sender_canonical'

Der Parameter smtp_sasl_password_maps gibt den Pfad zur Tabelle mit den Zugangsdaten des Smarthosts an.

pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'

Mit dem folgenden Befehl erstellen Sie die Datei /etc/postfix/sender_canonical und ordnen dem lokalen Benutzer georg die externe E-Mail-Adresse email-adresse@gmx.net zu.

pi@raspberrypi ~ $ sudo su -c 'echo "georg email-adresse@gmx.net" > /etc/postfix/sender_canonical'

Damit nur der Benutzer root diese Datei lesen und bearbeiten kann, müssen Sie gegebenenfalls die Zugriffsrechte ändern.

pi@raspberrypi ~ $ sudo chown root:root /etc/postfix/sender_canonical
pi@raspberrypi ~ $ sudo chmod 0600 /etc/postfix/sender_canonical

Jetzt müssen Sie die Datei /etc/postfix/sender_canonical in ein für Postfix lesbares Format konvertieren.

pi@raspberrypi ~ $ sudo postmap /etc/postfix/sender_canonical

Der folgende Befehl erstellt die Datei /etc/postfix/sasl_passwd in welche die Zugangsdaten für den SMTP-Relay-Server eingetragen werden.

pi@raspberrypi ~ $ sudo su -c 'echo "[mail.gmx.net] email-adresse@gmx.net:passwort" > /etc/postfix/sasl_passwd'

Besonders auf diese Datei sollte kein unbefugter Benutzer zugreifen können, daher ändern Sie die Zugriffsrechte wie folgt.

pi@raspberrypi ~ $ sudo chown root:root /etc/postfix/sasl_passwd
pi@raspberrypi ~ $ sudo chmod 0600 /etc/postfix/sasl_passwd

Auch diese Datei wird mit dem Befehl postmap konvertiert.

pi@raspberrypi ~ $ sudo postmap /etc/postfix/sasl_passwd

Die Konfiguration von Postfix ist hiermit abgeschlossen und Sie können sie mit dem folgenden Befehl neu laden.

pi@raspberrypi ~ $ sudo /etc/init.d/postfix reload

Um die korrekte Funktion sicherzustellen, senden Sie vom angegebenen Benutzer (hier georg) eine E-Mail an einen externen Empfänger und betrachten das Logfile /var/log/mail.log.

pi@raspberrypi ~ $ tail -f /var/log/mail.log

Die Ausgabe sollte wie folgt aussehen.

Sep  1 14:34:56 raspberrypi postfix/smtpd[3167]: connect from raspberrypi.home.lan[192.168.10.52]
Sep  1 14:34:56 raspberrypi postfix/smtpd[3167]: CB9A721DB9: client=raspberrypi.home.lan[192.168.10.52]
Sep  1 14:34:56 raspberrypi postfix/cleanup[3171]: CB9A721DB9: message-id=<29f93a902a0708346bbac3080c0dc207@raspberrypi.home.lan>
Sep  1 14:34:56 raspberrypi postfix/qmgr[3136]: CB9A721DB9: from=<email-adresse@gmx.net>, size=632, nrcpt=1 (queue active)
Sep  1 14:34:57 raspberrypi postfix/smtpd[3167]: disconnect from raspberrypi.home.lan[192.168.10.52]
Sep  1 14:34:57 raspberrypi postfix/smtp[3172]: CB9A721DB9: to=<empfaenger@domain.de>, relay=mail.gmx.net[212.227.17.168]:25, delay=0.6, delays=0.16/0.16/0.19/0.1, dsn=2.0.0, status=sent (250 Requested mail action okay, completed: id=0M4kfR-1WEWeC19iP-00yzbW)
Sep  1 14:34:57 raspberrypi postfix/qmgr[3136]: CB9A721DB9: removed

SMTP-Relay-Server in Abhängigkeit des Absenders auswählen

Die Konfiguration aus dem vorhergehenden Abschnitt hat den Nachteil, dass nur ein SMTP-Relay-Server und nur eine externe Absenderadresse verwendet werden kann. Wenn Sie mehrere lokale Benutzer haben, welche E-Mails an externe Adressen senden wollen, funktioniert die beschriebene Methode nicht mehr. Seit der Version 2.3 kann Postfix je nach Absender die E-Mails über verschiedene SMTP-Server mit individuellen Authentifizierungsdaten versenden.

Die folgenden Befehle kennen Sie bereits aus dem vorhergehenden Abschnitt und werden hier nicht nochmals beschrieben.

pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_auth_enable = yes'
pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_security_options = noanonymous'
pi@raspberrypi ~ $ sudo postconf -e 'smtp_connection_cache_on_demand = no'
pi@raspberrypi ~ $ sudo postconf -e 'sender_canonical_maps = hash:/etc/postfix/sender_canonical'
pi@raspberrypi ~ $ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'

Zusätzlich zu den bekannten Parametern müssen Sie die Sender-abhängige Authentifizierung mit dem Parameter smtp_sender_dependent_authentication aktivieren und eine weitere Zuordnungstabelle angeben.

pi@raspberrypi ~ $ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
pi@raspberrypi ~ $ sudo postconf -e 'sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent_relayhost'

In der Datei /etc/postfix/sender_canonical werden den lokalen Benutzern wieder gültige externe Adressen zugeordnet.

pi@raspberrypi ~ $ sudo su -c 'echo "pi email-adresse@web.de" >> /etc/postfix/sender_canonical'
pi@raspberrypi ~ $ sudo su -c 'echo "georg email-adresse@gmx.net" >> /etc/postfix/sender_canonical'
pi@raspberrypi ~ $ sudo chown root:root /etc/postfix/sender_canonical
pi@raspberrypi ~ $ sudo chmod 0600 /etc/postfix/sender_canonical
pi@raspberrypi ~ $ sudo postmap /etc/postfix/sender_canonical

Die Datei /etc/postfix/sender_dependent_relayhost enthält die Zuordnungen von Absenderadresse und dem dazugehörigen SMTP-Relay-Server.

pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@web.de [smtp.web.de]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmx.net [mail.gmx.net]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmx.de [mail.gmx.net]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@googlemail.com [smtp.googlemail.com]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmail.com [smtp.gmail.com]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@t-online.de [securesmtp.t-online.de]" >> /etc/postfix/sender_dependent_relayhost'
pi@raspberrypi ~ $ sudo chown root:root /etc/postfix/sender_dependent_relayhost
pi@raspberrypi ~ $ sudo chmod 0600 /etc/postfix/sender_dependent_relayhost
pi@raspberrypi ~ $ sudo postmap /etc/postfix/sender_dependent_relayhost

Hinweis: Sollten Sie einen T-Online SMTP-Server als Relay-Server verwenden wollen, müssen Sie entweder smtpmail.t-online.de oder securesmtp.t-online.de in der /etc/postfix/sender_dependent_relayhost hinterlegen. Solange die Verbindung zum Relay-Server nicht mit TLS verschlüsselt wird müssen Sie smtpmail.t-online.de angeben. Sobald Sie die SMTP-Verbindung verschlüsseln wollen, müssen Sie hingegen securesmtp.t-online.de angeben.

Mit der Datei /etc/postfix/sasl_passwd ordnen Sie den Absenderadressen die dazugehörigen Zugangsdaten für die SMTP-Relay-Server zu.

pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@web.de email-adresse@web.de:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmx.net email-adresse@gmx.net:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmx.de email-adresse@gmx.de:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@googlemail.com benutzername:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@gmail.com benutzername:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo su -c 'echo "email-adresse@t-online.de email-adresse@t-online.de:passwort" >> /etc/postfix/sasl_passwd'
pi@raspberrypi ~ $ sudo chown root:root /etc/postfix/sasl_passwd
pi@raspberrypi ~ $ sudo chmod 0600 /etc/postfix/sasl_passwd
pi@raspberrypi ~ $ sudo postmap /etc/postfix/sasl_passwd

Die Konfiguration von Postfix ist hiermit abgeschlossen und Sie können sie mit dem folgenden Befehl neu laden.

pi@raspberrypi ~ $ sudo /etc/init.d/postfix reload

Um die korrekte Funktion sicherzustellen, senden Sie von einem lokalen Benutzer eine E-Mail an einen externen Empfänger und betrachten das Logfile /var/log/maillog.

pi@raspberrypi ~ $ tail -f /var/log/mail.log

Die Ausgabe sollte wieder wie folgt aussehen.

Sep  1 14:52:07 raspberrypi postfix/smtpd[3327]: connect from raspberrypi.home.lan[192.168.10.52]
Sep  1 14:52:07 raspberrypi postfix/smtpd[3327]: DB09C21DB9: client=raspberrypi.home.lan[192.168.10.52]
Sep  1 14:52:07 raspberrypi postfix/cleanup[3305]: DB09C21DB9: message-id=<49cb39e16793a1cda1e27653ef6ddd5c@raspberrypi.home.lan>
Sep  1 14:52:08 raspberrypi postfix/qmgr[3189]: DB09C21DB9: from=<email-adresse@gmx.net>, size=686, nrcpt=1 (queue active)
Sep  1 14:52:08 raspberrypi postfix/smtpd[3327]: disconnect from raspberrypi.home.lan[192.168.10.52]
Sep  1 14:52:08 raspberrypi postfix/smtp[3307]: DB09C21DB9: to=<empfaenger@domain.de>, relay=mail.gmx.net[212.227.17.190]:25, delay=0.39, delays=0.11/0.01/0.17/0.1, dsn=2.0.0, status=sent (250 Requested mail action okay, completed: id=0MfF6I-1Vdo7G0kZe-00OmI6)
Sep  1 14:52:08 raspberrypi postfix/qmgr[3189]: DB09C21DB9: removed

Weiterführende Tutorials

Raspbian Wheezy: Empfängeradressen durch Postfix umschreiben
Raspbian Wheezy: Verbindungen zwischen Postfix und SMTP-Relay-Server mit TLS verschlüsseln


Dieser Eintrag wurde am 01.09.2013 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2312.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer