Sendmail ohne DNS (Host lookups) betreiben

31. Oktober 2005

Ihr Problem

Sie wollen einen Sendmail Server betreiben und können oder wollen aus verschiedenen Gründen nicht Postfix, Exim oder Qmail verwenden. Ihr Sendmail soll aber die Mails nicht selbst zustellen, sondern lediglich an eine Smarthost weiterleiten.

Das funktioniert auch alles, aber: Ihr Sendmail kann ohne eine funktionierende Namensauflösung keine Mails zustellen. Das ist besonders ärgerlich, weil diese durch die Verwendung eines Smarthosts eigentlich überflüssig ist.

Wenn Sie mit mailq -Ac die nicht zugestellten Mails aufrufen, sehen Sie Einträge mit deferred und hostname lookup.

Die Ursache

Die genaue Ursache ist nicht (genau) bekannt. Sendmail versucht an verschiedenen Stellen Host- oder Domainnamen aufzulösen oder zu kontrollieren.

Eine Lösung

Legen Sie eine Datei /etc/mail/service.switch mit folgendem Inhalt an:


/etc/mail/service.switch:
hosts files
aliases files

Fügen Sie nun in Ihrer sendmail.mc folgende Zeile ein:


/etc/mail/sendmail.mc:
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

Vergessen Sie nicht, durch den Aufruf von make die Datei sendmail.cf neu zu erzeugen und Sendmail danach neu zu starten oder zumindest zu reloaden.