Sendmail über externen Mailserver (anderer Port) senden lassen

Wenn man das im letzten Beitrag beschriebene Problem mit Mails hat (Port 25 geblockt) und bereits einen externen Mailserver wie dort beschrieben eingerichtet hat, muss man nun noch den Weitertransport über diesen Server organisieren.

Dazu geht man bei dem hinter der Firewall befindlichen Server mit der MTA sendmail (habe ich wegen der Einfachheit gewählt) wie folgt vor:

Zuerst stoppen wir sendmail

service sendmail stop

und editieren /etc/mail/sendmail.mc

define(`SMART_HOST',`smtp.myisp.net')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS', `TCP $h 587')
FEATURE(`authinfo',`Hash -o /etc/mail/authinfo.db')dnl

Mit dem Befehl

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

wird die Config geprüft und in einem für sendmail lesbaren Format gespeichert.

Danach wird die Datei /etc/mail/authinfo mit folgendem Inhalt angelegt:

AuthInfo:ispdomain.net "U:my_username" "P:my_password" "M:PLAIN"
AuthInfo: "U:my_username" "P:my_password" "M:PLAIN"

Statt PLAIN kann auch ein anderer vom Relayserver unterstützter Authentifizierungsmechanismus gewählt werden.

makemap hash /etc/mail/authinfo < /etc/mail/authinfo

schreibt die Auth-Daten in eine von sendmail lesbare Hashfile (authinfo.db).

Jetzt kann sendmail wieder gestartet werden

service sendmail start

und sollte Mails nun über Port 587 an den Relay-Server weiterleiten, der sie schließlich ausliefert.