Soluzione 1:
Supponendo che l'errore si stia lamentando dei dati HELO/EHLO, si desidera utilizzare l'opzione helo_data sul trasporto smtp. Il valore predefinito è $primary_hostname.
remote_smtp:
driver = smtp
helo_data = host.example.com
Ulteriori informazioni sono disponibili nel manuale.
In caso contrario, probabilmente vorrai includere alcuni esempi di messaggi di rifiuto. Solo il codice a tre cifre e la stringa successiva.
Soluzione 2:
Il comando
sudo dpkg-reconfigure exim4-config
dovrebbe richiedere il nome host principale da utilizzare.
Soluzione 3:
Su Debian (Lenny) ho scoperto che hai impostato il nome host in /etc/hostname
ma che questo non viene riconosciuto fino al riavvio.
$ hostname newhostname
lo imposta subito (ma si perde al riavvio, quindi devi fare le due cose).
exim4 sembra riportare lo stesso di uname -n
, e l'ho trovato un modo utile per testare.
Soluzione 4:
Quale nome host sta inviando exim?
Si può trovare il nome HELO nei log di exim4. Arrestare il demone exim4, quindi riavviarlo manualmente con il debug abilitato :
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(il 2>&1|egrep 'HELO|EHLO'
part è facoltativo, reindirizza solo stderr a stdout, quindi indirizza il log a egrep
, che filtrerà tutto tranne le righe contenenti HELO o EHLO).
Invia un'e-mail e dovrebbero esserci una o due righe nel seguente modulo :
SMTP>> EHLO foobar.example.com
Il nome HELO è foobar.example.com
.
Esistono anche diversi utili strumenti di controllo online che forniscono queste informazioni (e molte altre utili), ad es. :
- https://www.mail-tester.com (attenzione, solo 3 controlli email gratuiti al giorno);
- [email protected] (gratuito);
- [email protected] (la maggior parte dei suoi feedback non è gratuita, ma per questo scopo lo è).
Come faccio a cambiarlo?
Invece di modificare il file di trasporto come suggerito da David, preferirei utilizzare le definizioni costanti exim4 (?) e impostare il nome in /etc/exim4/conf.d/main/00_local_settings
(in configurazione split), ad es. :
REMOTE_SMTP_HELO_DATA=$sender_address_domain
Non dimenticare di eseguire update-exim4.conf
prima di riavviare exim4.
Ho impostato primary_hostname […] in /etc/exim4/exim4.conf.template
Come accennato da David, questa probabilmente non è l'idea migliore. Nella configurazione divisa, puoi impostare il nome host principale aggiungendo
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
in /etc/exim4/conf.d/main/00_local_settings
. Sembra che sarebbe PRIMARY_HOST_NAME
in configurazione exim4 monolitica.