550 Bad HELO - Host gibt sich als Hostname aus

Nach der Einrichtung von Discourse erhalte ich einen Bad HELO-Fehler.

Ich habe etwas recherchiert und festgestellt, dass dies in einigen Fällen ein Problem sein kann, wenn die Reverse-DNS-Eintragung nicht mit dem Hostnamen übereinstimmt.

In meinem Fall befindet sich der Mailserver-Host auf einem gemeinsamen DirectAdmin-Server, sodass ich Discourse auf einer Domain einrichte, die sich von der Host-Domain unterscheidet.

  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: discourse@example.com
  DISCOURSE_SMTP_PASSWORD: "mein_passwort_ohne_hash"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard: true)
  DISCOURSE_SMTP_DOMAIN: 20.example.org #Hinweis: Die DirectAdmin-Domain unterscheidet sich von meiner Domain.
  DISCOURSE_NOTIFICATION_EMAIL: noreply@example.com

Es ist ziemlich wahrscheinlich, dass der Server Ihren Reverse-DNS-Eintrag ablehnt, weil er nicht übereinstimmt. Beispielsweise verbinden Sie sich von einer IP-Adresse und sagen EHLO domainname.com. Der empfangende Server führt eine Reverse-Lookup für diese IP durch und findet www.domainname.com, was keine exakte Übereinstimmung ist, und beschwert sich daher bzw. lehnt ab. Dies ist zwar keine Verletzung der SMTP-Spezifikation, aber eine gängige Praxis zum Schutz vor Spam und Fälschungen.

PHPMailer leitet standardmäßig die SMTP-Umschlag-Absenderadresse von der From-Adresse ab, Sie können dies jedoch über die Eigenschaft Hostname überschreiben (nicht dasselbe wie Host), zum Beispiel:

$mail->From = 'user@domainname.com';
$mail->Hostname = 'www.domainname.com';
https://github.com/PHPMailer/PHPMailer/issues/1095

Hat

  dig -x deine.IP-Nummer

Deinen Hostnamen?

Hallo Jay,

Discourse erlaubt es mir noch nicht, Links in einer Antwort zu posten. Ich werde also stattdessen Punkte anstelle von Punkten verwenden. Hoffentlich bleibt es dadurch übersichtlich.

Ja, wenn ich diesen Befehl auf dem VPS ausführe, auf dem Discourse läuft, erhalte ich den Hostnamen, auf dem Discourse läuft, also discourse dot example dot com.

Wenn ich dies auf dem Shared-Server ausführe (wo sich der Mailserver befindet), erhalte ich dessen Hostnamen, also above 20 dot example dot org. Nicht example dot com. Technisch gesehen löst example dot com die IP-Adresse des Shared-Servers auf. Aber der Shared-Server hat einen anderen Hostnamen (20 dot example dot org).