Solution 1 :
En supposant que l'erreur se plaint des données HELO/EHLO, vous souhaitez utiliser l'option helo_data sur le transport smtp. La valeur par défaut est $primary_hostname.
remote_smtp:
driver = smtp
helo_data = host.example.com
Plus d'informations sont disponibles dans le manuel.
Si ce n'est pas le cas, vous voudrez probablement inclure des exemples de messages de rejet. Juste le code à trois chiffres et la chaîne après cela.
Solution 2 :
La commande
sudo dpkg-reconfigure exim4-config
devrait vous demander le nom d'hôte principal à utiliser.
Solution 3 :
Sur Debian (Lenny), j'ai trouvé que vous avez défini le nom d'hôte dans /etc/hostname
mais que cela n'est pas reconnu jusqu'au redémarrage.
$ hostname newhostname
le définit tout de suite (mais est perdu au redémarrage, vous devez donc faire les deux).
exim4 semble rapporter la même chose que uname -n
, et j'ai trouvé que c'était un moyen utile de tester.
Solution 4 :
Quel nom d'hôte envoie exim ?
On peut trouver le nom HELO dans les logs d'exim4. Arrêtez le démon exim4, puis redémarrez-le manuellement avec le débogage activé :
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(le 2>&1|egrep 'HELO|EHLO'
la partie est facultative, elle redirige simplement stderr vers stdout, puis dirige le journal vers egrep
, qui filtrera tout sauf les lignes contenant HELO ou EHLO).
Envoyez un email et il devrait y avoir une ou deux lignes sous la forme suivante :
SMTP>> EHLO foobar.example.com
Le nom HELO est foobar.example.com
.
Il existe également plusieurs outils de vérification en ligne utiles qui fournissent ces informations (et bien d'autres utiles), par ex. :
- https://www.mail-tester.com (attention, seulement 3 vérifications d'e-mails gratuites par jour);
- [email protected] (gratuit);
- [email protected] (la plupart de ses commentaires ne sont pas gratuits, mais dans ce but, ils le sont).
Comment puis-je le changer ?
Au lieu d'éditer le fichier de transport comme suggéré par David, je préfère utiliser les définitions constantes exim4 (?) et définir le nom dans /etc/exim4/conf.d/main/00_local_settings
(en configuration split), par ex. :
REMOTE_SMTP_HELO_DATA=$sender_address_domain
N'oubliez pas d'exécuter update-exim4.conf
avant de redémarrer exim4.
J'ai défini primary_hostname […] dans /etc/exim4/exim4.conf.template
Comme mentionné par David, ce n'est probablement pas la meilleure idée. En configuration fractionnée, vous pouvez définir le nom d'hôte principal en ajoutant
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
en /etc/exim4/conf.d/main/00_local_settings
. Il semble que ce serait PRIMARY_HOST_NAME
en configuration exim4 monolithique.