Je rencontre une erreur Bad HELO après avoir configuré Discourse.
J’ai fait quelques recherches et j’ai découvert que cela peut poser problème si le DNS inversé ne correspond pas au nom d’hôte dans certains cas.
Dans mon cas, la configuration de mon serveur de messagerie se trouve sur un serveur DirectAdmin partagé, donc j’installe Discourse sur un domaine différent de celui du nom d’hôte.
DISCOURSE_SMTP_ADDRESS: mail.example.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: discourse@example.com
DISCOURSE_SMTP_PASSWORD: "my_password_without_hash"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optionnel, par défaut true)
DISCOURSE_SMTP_DOMAIN: 20.example.org # notez que le domaine DirectAdmin diffère de mon domaine.
DISCOURSE_NOTIFICATION_EMAIL: noreply@example.com
Il est fort probable que le serveur rejette votre entrée DNS inversée car elle ne correspond pas. Par exemple, vous vous connectez depuis une adresse IP et déclarez EHLO domainname.com. Le serveur récepteur effectue une recherche inverse sur cette adresse et trouve www.domainname.com, ce qui ne correspond pas exactement, d’où le rejet ou la plainte. Ce n’est pas une violation de la spécification SMTP, mais c’est une pratique courante de lutte anti-spam et anti-usurpation.
PHPMailer déduit par défaut l’adresse de l’expéditeur de l’enveloppe SMTP à partir de l’adresse From, mais vous pouvez la remplacer en utilisant la propriété Hostname (qui n’est pas la même chose que Host), par exemple :
$mail->From = 'user@domainname.com';
$mail->Hostname = 'www.domainname.com';
https://github.com/PHPMailer/PHPMailer/issues/1095