Estoy recibiendo un error de Bad HELO después de configurar Discourse.
He investigado un poco y descubrí que esto puede ser un problema si la DNS inversa no coincide con el nombre de host en algunos casos.
En mi caso, la configuración tiene el nombre de host del servidor de correo en un servidor DirectAdmin compartido, por lo que estoy configurando Discourse en un dominio que difiere del dominio del nombre de host.
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 # (opcional, valor predeterminado true)
DISCOURSE_SMTP_DOMAIN: 20.example.org #nota que el dominio de DirectAdmin difiere de mi dominio.
DISCOURSE_NOTIFICATION_EMAIL: noreply@example.com
Es muy probable que esté rechazando tu entrada de DNS inversa porque no coincide; por ejemplo, te conectas desde una IP y dices EHLO domainname.com, el servidor receptor realiza una búsqueda inversa en esa IP y encuentra www.domainname.com, lo cual no es una coincidencia exacta, y por eso se queja o rechaza. No es una violación de la especificación SMTP, pero es una práctica común contra el spam y la falsificación.
PHPMailer derivará la dirección del remitente del sobre SMTP de la dirección From de forma predeterminada, pero puedes sobrescribirla usando la propiedad Hostname (no es lo mismo que Host), por ejemplo:
$mail->From = 'user@domainname.com';
$mail->Hostname = 'www.domainname.com';
https://github.com/PHPMailer/PHPMailer/issues/1095