550 Bad HELO - Host impersonifica hostname

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

Mostra

  dig -x il.tuo.ip.number

il nome del tuo host?

Ciao Jay,

Discourse non mi permette ancora di inserire link in una risposta. Quindi risponderò usando “dot” al posto del punto. Spero che questo mantenga tutto chiaro.

Sì, quando eseguo questo comando sul VPS su cui è in esecuzione Discourse, ottengo il nome host su cui gira Discourse, ovvero discourse dot example dot com.

Se lo eseguo sul server condiviso (dove si trova il server di posta), ottengo il suo nome host, ovvero above 20 dot example dot org, non example dot com. Tecnicamente example dot com risolve all’indirizzo IP del server condiviso, ma il server condiviso ha un altro nome host (20 dot example dot org).