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 :).

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.


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.


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.


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:

  • https://www.mail-tester.com (attention, seulement 3 vérifications par e-mail gratuites par jour);
  • check-auth@verifier.port25.com (gratuit);
  • mailtest@unlocktheinbox.com (la plupart de ses commentaires ne sont pas gratuits, mais à cette fin, ils le sont).

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.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.