Wie konfiguriere ich, wenn exim4 HELO / EHLO sendet, welchen Hostnamen es sendet?

12

Mails von meinem System werden abgelehnt, wenn der empfangende Server die HELO-Prüfung durchführt. Ich glaube, mein System sendet den falschen Domainnamen. Ich verwende exim4. Wenn Sie nach etwas über exim4 und Domains googeln, erhalten Sie eine albtraumhafte Liste irrelevanter Ergebnisse. In ähnlicher Weise führt das Googeln nach HELO-Ablehnungen zu einer Horde von Outlook-Benutzern, die die SMTP-Authentifizierung aktivieren müssen. Ich kann diese einfache Frage für mein ganzes Leben nicht herausfinden: Welcher Hostname wird exim gesendet und wie ändere ich ihn?

Leider kann ich nicht sehen, was Exim über das Kabel sendet, daher kann ich dies nicht selbst debuggen. Ich hoffe, jemand hat dieses Problem gehabt und weiß es einfach :).


quelle

Antworten:

15

Angenommen, der Fehler beschwert sich über die HELO / EHLO-Daten, möchten Sie die Option helo_data für den SMTP-Transport verwenden. Der Standardwert ist $ primary_hostname.

remote_smtp:
    driver = smtp
    helo_data = host.example.com

Weitere Informationen finden Sie im Handbuch .

Wenn dies nicht der Fall ist, möchten Sie wahrscheinlich einige Beispiel-Ablehnungsnachrichten einfügen. Nur der dreistellige Code und die Zeichenfolge danach.

David Pashley
quelle
Vielen Dank! Nachdem ich noch 10 Minuten gelesen hatte, wie man eine exim4-Einstellung auf einem Debian-basierten System überhaupt ändert , setzte ich den primären_Hostnamen in /etc/exim4/exim4.conf.template auf den vollqualifizierten Domänennamen und startete exim4 neu. Das hat funktioniert! Mein Hostname unterscheidet sich vom FQDN und ich verwende keine minimal_dns, daher das ursprüngliche Problem. Plus, nur durch Ihre manuelle Verknüpfung modifiziert war ich in der Lage , auch finden Sie die Dokumentation auf primary_hostname (Exim ist damit Google-trashed!). Danke noch einmal!
Sie möchten diese Datei wahrscheinlich nicht aktualisieren. Ich würde empfehlen, update-exim4.conf --keepcomments auszuführen und dann /var/lib/exim4/config.autogenerated nach /etc/exim4/exim4.conf zu kopieren und diese Datei dann zu ändern.
David Pashley
4

Der Befehl

sudo dpkg-reconfigure exim4-config

sollte Sie auffordern, den primären Hostnamen zu verwenden.

David North
quelle
3

Bei Debian (Lenny) habe ich festgestellt, dass Sie den Hostnamen festgelegt haben /etc/hostname, dies jedoch erst nach einem Neustart erkannt wird.

$ hostname newhostname

setzt es sofort (geht aber beim Neustart verloren, also müssen Sie die beiden machen).

exim4 scheint dasselbe zu melden wie uname -nund ich fand, dass dies ein nützlicher Weg zum Testen ist.

Reicher kunstvoller Roboter
quelle
2

Welchen Hostnamen sendet exim?

Den Namen HELO finden Sie in den Protokollen von exim4. Stoppen Sie den exim4-Daemon und starten Sie ihn manuell neu, wobei das Debuggen aktiviert ist:

/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'

(Der 2>&1|egrep 'HELO|EHLO'Teil ist optional. Er leitet stderr nur zu stdout um und leitet das Protokoll an weiter egrep, wodurch alles außer Zeilen gefiltert wird, die HELO oder EHLO enthalten.)

Senden Sie eine E-Mail und es sollten ein oder zwei Zeilen in der folgenden Form vorhanden sein:

SMTP>> EHLO foobar.example.com

Der HELO Name ist foobar.example.com.

Es gibt auch mehrere nützliche Online-Überprüfungstools, die diese Informationen bereitstellen (und viele nützliche andere), z.

Wie ändere ich es?

Anstatt die Transportdatei wie von David vorgeschlagen zu bearbeiten, verwende ich lieber exim4-Konstantendefinitionen (?) Und setze den Namen in /etc/exim4/conf.d/main/00_local_settings(in geteilter Konfiguration), z.

REMOTE_SMTP_HELO_DATA=$sender_address_domain

Vergessen Sie nicht, update-exim4.confvorher zu laufen , um exim4 neu zu starten.

Ich habe den primären_Hostnamen […] in /etc/exim4/exim4.conf.template festgelegt

Wie von David erwähnt, ist dies wahrscheinlich nicht die beste Idee. In der geteilten Konfiguration können Sie den primären Hostnamen durch Hinzufügen festlegen

MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com

in /etc/exim4/conf.d/main/00_local_settings. Es scheint, dass es sich um eine PRIMARY_HOST_NAMEmonolithische exim4-Konfiguration handelt.

Skippy le Grand Gourou
quelle
0

Die gewünschte Einstellung heißt primary_hostname .

Zum Debuggen können Sie verwenden

tcpdump -A port 25

um den SMTP-Verkehr in ASCII zu überwachen.

Brian-Brasilien
quelle