Lorsque exim4 envoie HELO / EHLO, comment configurer le nom d'hôte qu'il envoie?

12

Les courriels de mon système sont rejetés lorsque le serveur de réception vérifie HELO. Je crois que mon système envoie le mauvais nom de domaine. Je cours exim4. Googler pour quoi que ce soit sur exim4 et les domaines donne une liste cauchemardesque de résultats non pertinents. De même, la recherche sur Google des refus HELO génère une horde d'utilisateurs d'Outlook qui doivent activer l'authentification SMTP. Pour la vie de moi, je ne peux pas comprendre cette simple question: quel nom d'hôte est envoyé par exim et comment le changer?

Malheureusement, je ne peux pas regarder ce que exim envoie sur le fil, donc je n'ai aucun moyen de le déboguer moi-même. J'espère que quelqu'un a eu ce problème et sait juste :).


la source

Réponses:

15

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 souhaiterez probablement inclure des exemples de messages de rejet. Juste le code à trois chiffres et la chaîne après cela.

David Pashley
la source
Merci! Après 10 minutes de lecture supplémentaires sur la façon de modifier même un paramètre exim4 sur un système basé sur Debian, j'ai défini le nom_hôte_principal sur le nom de domaine complet dans /etc/exim4/exim4.conf.template et redémarré exim4. Ça a fait l'affaire! Mon nom d'hôte est différent du FQDN et je n'utilise pas minimal_dns, d'où le problème d'origine. De plus, ce n'est qu'en modifiant votre lien manuel que j'ai pu même trouver les documents sur primary_hostname (exim est tellement supprimé par Google!). Merci encore!
Vous ne voulez probablement pas mettre à jour ce fichier. Je recommanderais d'exécuter update-exim4.conf --keepcomments puis de copier /var/lib/exim4/config.autogenerated dans /etc/exim4/exim4.conf, puis de modifier ce fichier.
David Pashley
4

La commande

sudo dpkg-reconfigure exim4-config

devrait vous demander le nom d'hôte principal à utiliser.

David North
la source
3

Sur Debian (Lenny), j'ai constaté que vous définissez le nom d'hôte /etc/hostnamemais que ce n'est pas reconnu avant le redémarrage.

$ hostname newhostname

le définit immédiatement (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.

Rich Artful Robot
la source
2

Quel nom d'hôte est envoyé par exim?

On peut trouver le nom HELO dans les journaux 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'

(la 2>&1|egrep 'HELO|EHLO'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 e-mail 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 de nombreux autres utiles), par exemple:

Comment puis-je le changer?

Au lieu de modifier le fichier de transport comme suggéré par David, je préfère utiliser les définitions de constantes exim4 (?) Et définir le nom dans /etc/exim4/conf.d/main/00_local_settings(en configuration fractionnée), par exemple:

REMOTE_SMTP_HELO_DATA=$sender_address_domain

N'oubliez pas de courir update-exim4.confavant 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

dans /etc/exim4/conf.d/main/00_local_settings. Il semblerait qu'il soit PRIMARY_HOST_NAMEen configuration monolithique exim4.

Skippy le Grand Gourou
la source
0

Le paramètre souhaité est appelé nom_hôte_principal .

Pour le débogage, vous pouvez utiliser

tcpdump -A port 25

pour regarder le trafic SMTP en ASCII.

brian-brésil
la source