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.