sendmail: E-Mails via SMTP-Server versenden

Sendmail versendet in der Regel die E-Mails direkt an den Mailserver des Empfängers. Bei Servern in eigenen Netzwerken ist dies allenfalls nicht gewünscht, da ausgehende SMTP-Verbindungen auf der Firewall oder seitens Provider blockiert sind oder die E-Mails aus dynamischen Kundennetzwerken häufig im Spam landen.

Sendmail kann mit wenigen Konfigurationseinstellungen so konfiguriert werden, dass E-Mails inkl. Anmeldung an den Submision-Port eines fixen Mailservers weitergeleitet werden.

Die Anleitung bezieht sich auf RHEL 8.x, funktioniert aber grundsätzlich mit jeder Linux-Distribution, ggf. weichen Pfade ab.

Datei /etc/mail/authinfo editieren oder neu erstellen

AuthInfo:relay.server.com "U:myusername" "P:mypassword"

"relay.server.com" ist dabei der Ziel SMTP-Server, "myusername" der Benutzername und "mypassword" das Passwort.

Die Datei muss in eine Datenbank gewandelt werden:

cd /etc/mail
makemap hash ./authinfo < ./authinfo

Nun muss der Ziel-Server als SMART_HOST erfasst werden. Dazu muss die Datei /etc/mail/sendmail.mc editiert und mit folgenden Zeilen am Anfang der Datei ergänzt werden (Achtung: die sendmail.mc Datei hat einen eigenwilligen Aufbau, unterschiedliche Anführungszeichen beachten):

define(`SMART_HOST', `relay.server.com')dnl
define(`RELAY_MAILER',`esmtp')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
FEATURE(`authinfo',`Hash -o /etc/mail/authinfo.db')dnl

"relay.server.com" muss dabei mit der Angabe aus der authinfo-Datei übereinstimmen. Port 587 definiert den Ziel-Port (Submission-Port).

Die sendmail.mc muss dann mit folgendem Befehl in eine sendmail.cf gewandelt werden:

cd /etc/mail
m4 ./sendmail.mc > ./sendmail.cf

Nach einem Neustart des Sendmail-Dienstes werden alle E-Mails an den Zielserver weitergeleitet.