Mit sSMTP Mails an den SMTP-Server deines Mailprovider leiten

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Netzwerk ‹ Mit sSMTP Mails an den SMTP-Server deines Mailprovider leiten


sSMTP (simple SMTP) ist ein sehr einfacher MTA, um Mails von deinem System an einen Hub zu leiten. Hier geht es darum, die System-Mails vom eigenen Rechner an einen SMTP-Server (z.B. eines Providers) zu leiten. Im Artikel wird Alice DSL als Beispiel genommen.

Hinweis.png Hinweis: sSMTP ist nur via sendmail-Syntax zu verwenden, nicht als Daemon am Port 25.


Installation

Debian Paket installieren

sSMTP befindet sich im gleichnamigen Paket Debianpackage.png ssmtp.

Zugriffsrechte überschreiben

Da die Konfiguration das Passwort im Klartext enthalten wird, sollten die Zugriffsrechte so angepasst werden, dass niemand außer root Lese- und Schreibrechte hat. So können dann allerdings auch nur root und die Gruppe mail Mails verschicken, und die Zugangsdaten lesen. Beachte auch das ggf. eine Sicherungskopien der Datei vom Editor existiert.

# dpkg-statoverride --update --add root mail 0640 /etc/ssmtp/ssmtp.conf

Mit dpkg-statoverride werden die Datei-Zugriffsrechte dauerhaft überschrieben, so das diese auch nach einem upgrade erhalten bleiben.

Konfiguration

ssmtp.conf

In die Konfigurationsdatei /etc/ssmtp/ssmtp.conf, werden u. a. die Zugangsdaten für die Anmeldung am SMTP-Server eingetragen.

# Benutzer, der alle Mails bekommt, die an Benutzer mit einer ID < 1000 adressiert sind.
root=alice-user
# Überschreiben der Absender-Domain.
rewriteDomain=alice-dsl.net

# Rechner (der Hub) an den die Mails verschickt werden sollen (host|ip_addr[:port])   
mailhub=smtp.alice-dsl.net

UseSTARTTLS=YES
AuthUser=alice-user@alice-dsl.net
AuthPass=password

revaliases

In /etc/ssmtp/revaliases müssen die Absenderadressen überschrieben werden, da Alice (wie i. d. R. alle anderen Mailprovider auch) nur Mails akzeptiert, die von der eigenen Adresse verschickt werden.

root:alice-user@alice-dsl.net
linux-user:alice-user@alice-dsl.net

Testen und Fehlerbehandlung

Es kann sein, dass es nicht gleich funktioniert. Am besten verschickt man eine Test-Mail mit mail und nutzt den verbose-Modus:

# mail -vs "Test-Mail" account@example.org
power with marmaro :-)
.
Cc: linux-user, root

Wie man hier bemerken wird, wurde an linux-user keine Mail geschickt, so dass System-Mails an Benutzer mit einer ID >= 1000 an root geleitet werden müssen. (Bspw. MAILTO=root in der crontab u. s. w.)

Auch die Log-Dateien können relevante Informationen enthalten:

# tail /var/log/mail.{err,info,log,warn}

Fehlermeldungen

Häufige Fehlermeldungen (SMTP Status-Meldungen) und ihre Bedeutung sind:

535 Authentication unsuccessful.

Benutzer und Passwort passen nicht.

454 Client does not have permission to Send As this sender.

Absenderadresse stimmt nicht. Es muss strikt der Alice- und nicht der Linux-Benutzername verwendet werden.

Wissenswertes

Das Perl-Modul Mail::Sendmail

Wird in Perl-Skripten das Mail::Sendmail Modul genutzt, dann funktioniert der Mail-Versand nicht mit sSMTP, da das Modul kein command-line sendmail unterstützt und ausschließlich über Sockets mit einem lauschenden SMTP-Server kommuniziert. sSMTP und Debianpackage.png iwatch arbeiten bspw. nicht zusammen.


Migriert.png Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert.