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