Un serveur SMTP distant auquel j'essaie de livrer du courrier refuse d'accepter le HELO de mon serveur:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
Apparemment, mon serveur Exim4 envoie localhost
comme son nom de domaine complet. En cherchant sur le net et un tas de fichiers de configuration, j'ai appris que la valeur envoyée en tant que FQDN pendant HELO est tirée de la primary_hostname
variable de configuration.
Ma question est: quelle est la bonne façon de changer cette variable dans un système Debian? Je suppose que je peux simplement coder en dur une valeur dans l'un des fichiers de configuration Exim4, mais à mon humble avis, il semblerait plus logique que la valeur corresponde automatiquement/etc/mailname
ou à une autre configuration de nom centralisée.
J'ai l'impression que la réponse à ma question se trouve dans ce texte du wiki Debian :
Le nom utilisé par Exim dans EHLO / HELO est tiré de l'option de configuration
primary_hostname
. La configuration par défaut exim4 de Debian n'est pas définieprimary_hostname
. Exim utilise par défaut uname () pour trouver le nom d'hôte. Si cet appel ne renvoie qu'un seul composant, gethostbyname () ou getipnodebyname () est utilisé pour obtenir le nom d'hôte complet.Si vos Exim HELO en tant que localhost.localdomain, alors vous avez très probablement un / etc / hosts mal configuré configuré par certaines versions du programme d'installation Debian. Dans ce cas, veuillez corriger votre / etc / hosts.
Malheureusement, je ne connais pas assez bien l'administration des serveurs Linux pour savoir exactement ce que cela signifie :(
hostname -f
rapporte toujours "localhost". La partie sur / etc / hosts dans votre réponse semble boguée - à quoi le premier enregistrement devrait-il ressembler?hostname -f
qu'il signale toujours "localhost", il semble que le changement de / etc / hostname ait fait l'affaire - je suis en mesure de livrer mon courrier maintenant. J'aimerais quand même voir la partie manquante de votre message :)/etc/hostname
ne contient généralement pas le FQDN sur les systèmes Debian, seulement le nom d'hôte court./etc/hosts
peut être127.0.0.2 mydomain.com myhostname
(127.0.0.2
fonctionne aussi bien127.0.0.1
, car le bouclage est un réseau de classe A). Vous pouvez probablement combiner les deux lignes en une seule127.0.0.1 mydomain.com myhostname localhost
, maislocalhost
c'est un nom d'hôte canonique pour127.0.0.1
, n'est-ce pas? Tout cela étant donné que vous avez le nom d'hôte, pas le FQDN comme nom d'hôte. De plus, le changement/etc/hostname
ne prend pas effet immédiatement, vous devezhostname myhostname
. Ou redémarrez le serveur.Si vous utilisez un seul fichier de configuration, définissez la variable PRIMARY_HOST_NAME sur le nom souhaité:
Par exemple dans /etc/exim4/exim4.conf:
ou définissez-le
MAIN_HARDCODE_PRIMARY_HOSTNAME
dans update-exim4.conf.conf si vous utilisez une configuration de fichier fractionné.Pour être sûr, redémarrez exim.
la source
HELO 'mybox.mydomain.com'
ce qui interrompt l'envoi de courrier à Google, peut-être à d'autres.update-exim4.conf
après avoir changé la configuration. Et le redémarrage n'est généralement pas nécessaire après cela.exim
semble généralement remarquer les modifications apportées à la configuration sans rechargement. Mais il est sans doute plus sûr de recharger, car je suppose que le démon lui-même ne relit pas la configuration avant le rechargement. Ensuite, vous donnez l'impression qu'il/etc/exim4/exim4.conf
peut contenir uniquement la ligne ci - dessus , mais au moment où vous créez le fichier, il/var/lib/exim4/config.autogenerated
est ignoré .../etc/exim4/exim4.conf.localmacros
, pour le fractionnement/etc/exim4/conf.d/main/000_localmacros
(les fichiers dansmain
dir sont traités en premier). Et exécutezupdate-exim4.conf
+systemctl reload exim4
après avoir apporté des modifications.Le nom d'hôte principal est demandé lors de l'installation d'exim4. Vous pouvez exécuter la commande
pour parcourir à nouveau les invites.
Pour autant que je sache, si vous utilisez déjà la 'configuration partagée' (beaucoup de petits fichiers sous /etc/exim4/conf.d) et que vous choisissez de vous en tenir à l'invite, dpkg-reconfigure ne devrait pas écraser vos modifications de configuration existantes autres que les paramètres qu'il vous demande, mais, comme toujours, vous devez d'abord effectuer une sauvegarde pour être sûr.
la source
/etc/mailname
. Par défaut, il est utilisé pour qualifier les adresses non qualifiées . Ceux qui consistent uniquement en nom d'utilisateur. En ajoutant un nom de domaine à partir de/etc/mailname
. L'adresse résultante est utilisée dans l'en-From
tête.La
primary_hostname
variable est remplie en fonction du nom de domaine complet (FQDN) du système. Sur Debian et les systèmes associés, cela se forme généralement en utilisant le contenu des fichiers/etc/hostname
et/etc/hosts
. Le fichier de nom d'hôte doit contenir le nom d'hôte court (par exemplefoo
) et le fichier d'hôtes doit contenir une entrée se résolvantfoo
enfoo.bar.baz
, c'est-à-dire le nom d'hôte avec son suffixe de domaine (correspondant normalement à une entrée DNS).La sortie de la commande
hostname
(sans aucun paramètre) renverra la première et lahostname -f
sortie renverra la seconde.Le fichier de nom d'hôte est généralement rempli lors de l'installation, et le fichier d'hôtes peut être modifié pour avoir un autre enregistrement à côté des enregistrements d'hôte local par défaut - il doit être de la forme:
Les trois colonnes doivent être séparées par des espaces ou des tabulations, cela n'a pas d'importance. L'adresse IP peut être 127.0.0.1 tout comme localhost, mais la partie du nom d'hôte correspond au nom d'hôte du système et la partie centrale doit être le FQDN, c'est-à-dire le nom d'hôte avec un suffixe de domaine.
Pour vérifier que la ligne fonctionne, exécutez simplement
hostname -f
et vérifiez qu'elle renvoie le nom de domaine complet de votre serveur.Enfin, redémarrez Exim, par exemple avec:
Ensuite, vous devriez commencer à le voir correctement HELO. Sa variable peut être vérifiée en exécutant:
(NB: j'ai initialement fait cela comme une modification de la réponse de 2009, mais elle a été rejetée. Les choses que je corrigeais à l'origine sont: il n'était pas nécessaire de répéter l'enregistrement localhost par défaut, expliquez simplement ce que l'addition devrait être; expliquez laquelle L'adresse IP peut être utilisée; expliquer ce qu'est le nom de domaine complet; expliquer comment vérifier l'exim lui-même.)
la source
/usr/sbin/exim4 -bP primary_hostname
ne fonctionne pas. Vous pouvez vérifier le nom d'hôte HELO en envoyant un e-mail de test au vérificateur d' authentification de port25 ou à toute autre boîte aux lettres où vous pouvez voir l'original. Plus d'informations ici . Pensez à mettre à jour votre réponse.helo_data
est$primary_hostname
. Sur les systèmes Debian, vous pouvez le remplacer en utilisant laREMOTE_SMTP_HELO_DATA
variable, mais si vous définissez simplement votre nom d'hôte principal correctement, ce n'est pas nécessaire./etc/hosts
. Et tout ce que je demande, c'est de ne pas appeler convenable ce qui n'est pas généralement accepté.après avoir ajouté la même chaîne dans / etc / hosts, hostname -f renverra votre nom de domaine complet
la source
myhostname
va à/etc/hostname
(suivi dehostname myhostname
). Et127.0.0.1 mydomain.com myhostname.com localhost
va à/etc/hosts
. De plus, rechargezexim
juste au cas où.J'ai le même problème. Je dois changer le nom d'hôte de la messagerie, car certains e-mails échouent lorsqu'ils ont été envoyés. Avec cette erreur:
Je le change donc en paramètre
/etc/exim.config
param primary_hostnameUn code de ce fichier:
la source
dans WHM goto Exim Configuration Manager -> Advanced Editor
faites défiler vers le bas jusqu'à ce que vous trouviez «Ajouter des paramètres de configuration supplémentaires» (un gros bouton bleu) et cliquez dessus.
dans la nouvelle ligne, ajoutez [primary_hostname] = [mondomaine.com]
faites défiler vers le bas et cliquez sur Enregistrer.
la source