Sto ricevendo un errore Bad HELO dopo aver configurato Discourse.
Ho fatto alcune ricerche e ho scoperto che questo può essere un problema se, in alcuni casi, il DNS inverso non corrisponde al nome host.
Nel mio caso, la configurazione del server di posta si trova su un server DirectAdmin condiviso, quindi sto configurando Discourse su un dominio diverso da quello del nome 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 # (opzionale, valore predefinito true)
DISCOURSE_SMTP_DOMAIN: 20.example.org #nota che il dominio DirectAdmin differisce dal mio dominio.
DISCOURSE_NOTIFICATION_EMAIL: noreply@example.com
È molto probabile che il server stia rifiutando la connessione perché la voce del DNS inverso non corrisponde: ad esempio, ti connetti da un IP e invii EHLO domainname.com; il server ricevente esegue una ricerca inversa su quell’IP e trova www.domainname.com, che non è una corrispondenza esatta, quindi lamenta o rifiuta. Non si tratta di una violazione della specifica SMTP, ma è una pratica comune anti-spam e anti-falsificazione.
PHPMailer deriva l’indirizzo del mittente dell’involucro SMTP dall’indirizzo From per impostazione predefinita, ma puoi sovrascriverlo utilizzando la proprietà Hostname (che non è la stessa cosa di Host), ad esempio:
$mail->From = 'user@domainname.com';
$mail->Hostname = 'www.domainname.com';
https://github.com/PHPMailer/PHPMailer/issues/1095