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: sSMTP ist nur via sendmail-Syntax zu verwenden, nicht als Daemon am Port 25. |
Installation
Debian Paket installieren
sSMTP befindet sich im gleichnamigen Paket 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 iwatch arbeiten bspw. nicht zusammen.
Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert. |