550 Bad HELO - Hôte usurpant le nom d'hôte

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

Est-ce que

  dig -x votre.adresse.ip

Affiche le nom de votre hôte ?

Bonjour Jay,

Discourse ne me permet pas encore de publier des liens dans une réponse. Je vais donc répondre en utilisant « dot » au lieu d’un point. J’espère que cela restera clair.

Oui, lorsque j’exécute cette commande sur le VPS où Discourse est installé, j’obtiens le nom d’hôte sur lequel Discourse fonctionne, c’est-à-dire discourse dot example dot com.

Si j’exécute cette commande sur le serveur partagé (où se trouve le serveur de messagerie), j’obtiens son nom d’hôte, soit above 20 dot example dot org, et non example dot com. Techniquement, example dot com pointe vers l’adresse IP du serveur partagé. Cependant, le serveur partagé possède un autre nom d’hôte (20 dot example dot org).