Ein entfernter SMTP-Server, den ich versuche, E-Mails zuzustellen, um die Annahme des HELO von meinem Server zu verweigern:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
Anscheinend sendet mein Exim4-Server localhost
als FQDN. Beim Durchsuchen des Netzes und einiger primary_hostname
Konfigurationsdateien habe ich erfahren, dass der während HELO als FQDN gesendete Wert aus der Konfigurationsvariablen stammt.
Meine Frage ist: Wie kann ich diese Variable in einem Debian-System richtig ändern? Ich schätze, ich kann einfach einen Wert in einer der Exim4-Konfigurationsdateien fest codieren, aber meiner Meinung nach ist es sinnvoller, wenn der Wert automatisch einer /etc/mailname
oder einer anderen zentralisierten Namenskonfiguration entspricht.
Ich habe das Gefühl, dass die Antwort auf meine Frage in diesem Text aus dem Debian-Wiki zu finden ist :
Der von Exim in EHLO / HELO verwendete Name wird aus der Konfigurationsoption übernommen
primary_hostname
. Debians exim4-Standardkonfiguration wird nicht festgelegtprimary_hostname
. Exim ist dann standardmäßig uname (), um den Hostnamen zu finden. Wenn dieser Aufruf nur eine Komponente zurückgibt, wird gethostbyname () oder getipnodebyname () verwendet, um den vollständig qualifizierten Hostnamen abzurufen.Wenn Ihr Exim-HELO localhost.localdomain lautet, haben Sie höchstwahrscheinlich eine falsch konfigurierte / etc / hosts, die von einigen Versionen des Debian-Installationsprogramms erstellt wurde. In diesem Fall reparieren Sie bitte Ihre / etc / hosts.
Leider bin ich mit der Administration von Linux-Servern nicht vertraut genug, um genau zu wissen, was das alles bedeutet :(
hostname -f
meldet immer noch "localhost". Der Teil über / etc / hosts in Ihrer Antwort scheint fehlerhaft - wie soll die erste Aufzeichnung aussehen?hostname -f
immer noch "localhost" gemeldet wird, hat die Änderung in / etc / hostname den Trick getan - ich kann meine E-Mails jetzt zustellen. Ich würde trotzdem gerne den fehlenden Teil Ihres Beitrags sehen :)/etc/hostname
enthält normalerweise nicht den FQDN auf Debian-Systemen, sondern nur den kurzen Hostnamen./etc/hosts
könnte lauten127.0.0.2 mydomain.com myhostname
(127.0.0.2
funktioniert genauso gut127.0.0.1
, da Loopback ein Klasse-A-Netzwerk ist). Sie können wahrscheinlich die beiden Zeilen zu einer kombinieren127.0.0.1 mydomain.com myhostname localhost
, aberlocalhost
ist ein kanonischer Hostname für127.0.0.1
, nicht wahr? Das alles unter der Voraussetzung, dass Sie einen Hostnamen haben, nicht einen FQDN als Hostnamen. Änderungen werden/etc/hostname
nicht sofort wirksamhostname myhostname
. Oder starten Sie den Server neu.Wenn Sie eine einzelne Konfigurationsdatei verwenden, setzen Sie die Variable PRIMARY_HOST_NAME auf den gewünschten Namen:
Zum Beispiel in /etc/exim4/exim4.conf:
oder setzen Sie
MAIN_HARDCODE_PRIMARY_HOSTNAME
in update-exim4.conf.conf, wenn Sie die geteilte Dateikonfiguration verwenden.Starten Sie exim aus Sicherheitsgründen neu.
quelle
HELO 'mybox.mydomain.com'
Sendungen unterbrochen werden, wenn E-Mails an Google gesendet werden , möglicherweise an andere.update-exim4.conf
nach dem Ändern der Konfiguration ausgeführt werden. Danach ist in der Regel kein Neustart mehr erforderlich.exim
allgemein scheinen die Änderungen an der Konfiguration ohne Nachladen zu bemerken. Das Neuladen ist jedoch sicherer, da der Dämon die Konfiguration vermutlich erst nach dem Neuladen erneut liest. Dann lässt du es so klingen, als ob/etc/exim4/exim4.conf
es nur die obige Zeile enthalten könnte , aber in dem Moment, in dem du die Datei/var/lib/exim4/config.autogenerated
/etc/exim4/exim4.conf.localmacros
, sie zu teilen/etc/exim4/conf.d/main/000_localmacros
(Dateien immain
Verzeichnis werden zuerst verarbeitet). Und führen Sieupdate-exim4.conf
+ aus,systemctl reload exim4
nachdem Sie Änderungen vorgenommen haben.Der primäre Hostname wird während der Installation von exim4 abgefragt. Sie können den Befehl ausführen
um die Eingabeaufforderungen erneut durchzugehen.
Soweit ich weiß, sollte dpkg-reconfigure, wenn Sie bereits die geteilte Konfiguration (viele kleine Dateien unter /etc/exim4/conf.d) verwenden und sich daran halten, wenn Sie dazu aufgefordert werden, keines von beiden überschreiben Ihre vorhandenen Konfigurationsänderungen ändern sich nicht zu den Einstellungen, zu denen Sie aufgefordert werden. Sie sollten jedoch aus Sicherheitsgründen wie immer zuerst eine Sicherungskopie erstellen.
quelle
/etc/mailname
. Standardmäßig werden damit nicht qualifizierte Adressen qualifiziert . Diejenigen, die nur aus Benutzernamen bestehen. Durch Hinzufügen eines Domainnamens von/etc/mailname
. Die resultierende Adresse wird imFrom
Header verwendet.Die
primary_hostname
Variable wird gemäß dem vollqualifizierten Domänennamen (FQDN) des Systems gefüllt. Auf Debian- und verwandten Systemen wird dies normalerweise unter Verwendung des Inhalts der/etc/hostname
und/etc/hosts
-Dateien erstellt. Die Hostnamendatei sollte den kurzen Hostnamen enthalten (z. B.foo
), und die Hostdatei sollte einen Eintrag enthalten,foo
in den aufgelöst wirdfoo.bar.baz
, dh den Hostnamen mit seinem Domänensuffix (normalerweise passend zu einem DNS-Eintrag).Die Ausgabe des Befehls
hostname
(ohne Parameter) gibt die erstere und diehostname -f
Ausgabe die letztere zurück.Die Hostnamendatei wird in der Regel bei der Installation ausgefüllt, und die Hostdatei kann so bearbeitet werden, dass sie neben den standardmäßigen localhost-Datensätzen einen weiteren Datensatz enthält. Dieser sollte die folgende Form haben:
Die drei Spalten sollten durch Leerzeichen oder Tabulatoren getrennt sein, es spielt keine Rolle. Die IP-Adresse kann wie localhost 127.0.0.1 lauten, der Hostname stimmt jedoch mit dem Systemhostnamen überein, und der mittlere Teil sollte der FQDN sein, dh der Hostname mit einem Domänensuffix.
Um zu überprüfen, ob die Leitung funktioniert, führen Sie sie einfach aus
hostname -f
und überprüfen Sie, ob der FQDN Ihres Servers zurückgegeben wird.Starten Sie abschließend Exim neu, zB mit:
Danach solltest du es HELO richtig sehen. Die Variable kann überprüft werden, indem Folgendes ausgeführt wird:
(NB: Ich habe dies ursprünglich als Änderung der Antwort aus dem Jahr 2009 getan, aber sie wurde abgelehnt. Die Dinge, die ich ursprünglich repariert habe, waren: Es war nicht erforderlich, den Standard-Localhost-Datensatz zu wiederholen, sondern nur zu erläutern, was der Zusatz sein sollte Die IP-Adresse kann verwendet werden. Erläutern Sie den vollqualifizierten Domänennamen (FQDN). Erläutern Sie, wie das Exim selbst überprüft werden kann.
quelle
/usr/sbin/exim4 -bP primary_hostname
funktioniert nicht Sie können den HELO-Hostnamen überprüfen, indem Sie eine Test-E-Mail an den Authentifizierungsprüfer von port25 oder an eine beliebige andere Mailbox senden , in der Sie das Original sehen können. Mehr dazu hier . Erwägen Sie, Ihre Antwort zu aktualisieren.helo_data
lautet eindeutig$primary_hostname
. Auf Debian-Systemen können Sie es mit derREMOTE_SMTP_HELO_DATA
Variablen überschreiben. Wenn Sie jedoch nur Ihren primären Hostnamen richtig einstellen, ist dies nicht erforderlich./etc/hosts
. Und alles, was ich bitte, ist, nicht richtig zu nennen, was nicht allgemein akzeptiert wird.Nach dem Hinzufügen der gleichen Zeichenfolge in / etc / hosts gibt hostname -f Ihren vollqualifizierten Domänennamen zurück
quelle
myhostname
geht an/etc/hostname
(gefolgt vonhostname myhostname
). Und127.0.0.1 mydomain.com myhostname.com localhost
geht zu/etc/hosts
. Plusexim
für alle Fälle neu laden .Ich habe das gleiche Problem. Ich muss den E-Mail-Hostnamen ändern, da einige E-Mails beim Senden fehlschlagen. Mit diesem Fehler:
Also ändere ich es in
/etc/exim.config
den Parameter primary_hostnameCode dieser Datei:
quelle
Gehen Sie in WHM zu Exim Configuration Manager -> Erweiterter Editor
Scrollen Sie nach unten, bis Sie "Zusätzliche Konfigurationseinstellungen hinzufügen" (eine große blaue Schaltfläche) finden, und klicken Sie darauf.
Fügen Sie in der neuen Zeile [primary_hostname] = [mydomain.com] hinzu.
Scrollen Sie nach unten und klicken Sie auf Speichern.
quelle