Algunos servidores SMTP remotos a los que estoy tratando de enviar correo rechazan aceptar HELO de mi servidor:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
Aparentemente, mi servidor Exim4 envía localhost
como su FQDN. Al buscar en la red y en un montón de archivos de configuración, he aprendido que el valor enviado como FQDN durante HELO se extrae de la primary_hostname
variable de configuración.
Mi pregunta es: ¿cuál es la forma correcta de cambiar esta variable en un sistema Debian? Supongo que simplemente puedo codificar un valor en uno de los archivos de configuración de Exim4, pero en mi humilde opinión, parece tener más sentido si el valor corresponde automáticamente a /etc/mailname
alguna otra configuración de nombre centralizado.
Tengo la sensación de que la respuesta a mi pregunta se puede encontrar en este texto de la wiki de Debian :
El nombre utilizado por Exim en EHLO / HELO se extrae de la opción de configuración
primary_hostname
. La configuración predeterminada exim4 de Debian no se estableceprimary_hostname
. Exim, por defecto, es uname () para encontrar el nombre del host. Si esa llamada solo devuelve un componente, se utiliza gethostbyname () o getipnodebyname () para obtener el nombre de host completo.Si su Exim HELOs como localhost.localdomain, entonces probablemente tenga un / etc / hosts mal configurado creado por algunas versiones del instalador de Debian. En este caso, arregle su / etc / hosts.
Desafortunadamente, no estoy lo suficientemente familiarizado con la administración del servidor Linux como para saber exactamente qué significa todo esto :(
hostname -f
todavía informa "localhost". La parte sobre / etc / hosts en su respuesta parece tener errores: ¿cómo se supone que se verá el primer registro?hostname -f
aún informa "localhost", parece que el cambio a / etc / hostname hizo el truco: ahora puedo entregar mi correo. Aunque todavía me gustaría ver la parte que falta en tu publicación :)/etc/hostname
normalmente no contiene el FQDN en sistemas Debian, solo el nombre de host corto./etc/hosts
podría ser127.0.0.2 mydomain.com myhostname
(127.0.0.2
funciona tan bien127.0.0.1
, ya que el loopback es una red de clase A). Probablemente pueda combinar las dos líneas en una127.0.0.1 mydomain.com myhostname localhost
, perolocalhost
es un nombre de host canónico para127.0.0.1
, ¿no? Todo eso dado que tiene un nombre de host, no FQDN como su nombre de host. Además, el cambio/etc/hostname
no tiene efecto de inmediato, tienes que hacerlohostname myhostname
. O reiniciar el servidor.Si usa un solo archivo de configuración, configure la variable PRIMARY_HOST_NAME con el nombre deseado:
Por ejemplo en /etc/exim4/exim4.conf:
o establecer
MAIN_HARDCODE_PRIMARY_HOSTNAME
en update-exim4.conf.conf si está utilizando la configuración de archivo dividido.Para estar seguro, reinicie exim.
fuente
HELO 'mybox.mydomain.com'
qué interrupciones enviando correo a Google, tal vez a otros.update-exim4.conf
después de cambiar la configuración. Y reiniciar generalmente no es necesario después de eso.exim
generalmente parece notar los cambios en la configuración sin volver a cargar. Pero podría decirse que es más seguro recargar, ya que supongo que el demonio en sí no vuelve a leer la configuración hasta que se vuelva a cargar. Luego, haces que parezca que/etc/exim4/exim4.conf
puede contener solo la línea de arriba , pero en el momento en que creas el archivo,/var/lib/exim4/config.autogenerated
se ignora .../etc/exim4/exim4.conf.localmacros
, para dividir/etc/exim4/conf.d/main/000_localmacros
(los archivos enmain
dir se procesan primero) Y ejecutaupdate-exim4.conf
+systemctl reload exim4
después de hacer cambios.Se solicita el nombre de host principal durante la instalación de exim4. Puedes ejecutar el comando
repasar las indicaciones nuevamente.
Hasta donde sé, si ya está utilizando la 'configuración dividida' (muchos archivos pequeños en /etc/exim4/conf.d) y opta por seguir con eso cuando se le solicite, dpkg-reconfigure no debería sobrescribir ninguno de sus modificaciones de configuración existentes que no sean las configuraciones que le solicita, pero, como siempre, primero debe hacer una copia de seguridad para estar seguro.
fuente
/etc/mailname
. Por defecto se usa para calificar direcciones no calificadas . Los que consisten solo en nombre de usuario. Al agregar el nombre de dominio de/etc/mailname
. La dirección resultante se usa en elFrom
encabezado.La
primary_hostname
variable se completa de acuerdo con el nombre de dominio completo (FQDN) del sistema. En Debian y sistemas relacionados, esto generalmente se forma utilizando el contenido de los archivos/etc/hostname
y/etc/hosts
. El archivo de nombre de host debe contener el nombre de host corto (por ejemplofoo
), y el archivo de hosts debe contener una entrada que se resuelvafoo
enfoo.bar.baz
, es decir, el nombre de host con su sufijo de dominio (que normalmente coincide con una entrada de DNS).El resultado del comando
hostname
(sin ningún parámetro) devolverá el primero, y elhostname -f
resultado devolverá el último.El archivo de nombre de host generalmente se llena después de la instalación, y el archivo de hosts se puede editar para tener otro registro junto a los registros de host local predeterminados; debe tener la forma:
Las tres columnas deben estar separadas por espacios o pestañas, no importa. La dirección IP puede ser 127.0.0.1 al igual que localhost, pero la parte del nombre del host coincide con el nombre del host del sistema, y la parte central debe ser el FQDN, es decir, el nombre del host con un sufijo de dominio.
Para verificar que la línea funciona, simplemente ejecute
hostname -f
y verifique que devuelva el FQDN de su servidor.Finalmente, reinicie Exim, por ejemplo con:
Luego deberías comenzar a verlo HELO correctamente. Su variable se puede verificar ejecutando:
(NB: originalmente hice esto como una edición de la respuesta de 2009, pero fue rechazado. Las cosas que estaba arreglando originalmente son: no había necesidad de repetir el registro localhost predeterminado, solo explique cuál debería ser la adición; explique qué Se puede usar la dirección IP; explicar qué es FQDN; explicar cómo verificar exim en sí).
fuente
/usr/sbin/exim4 -bP primary_hostname
no funciona Puede verificar el nombre de host HELO enviando un correo electrónico de prueba al comprobador de autenticación de port25 o a cualquier otro buzón donde pueda ver el original. Más sobre esto aquí . Considera actualizar tu respuesta.helo_data
es$primary_hostname
. En los sistemas Debian, puede anularlo utilizando laREMOTE_SMTP_HELO_DATA
variable, pero si solo establece su nombre de host principal correctamente, eso no es necesario./etc/hosts
. Y todo lo que pido es no llamar a lo apropiado lo que generalmente no se acepta.después de agregar la misma cadena en / etc / hosts, hostname -f devolverá su FQDN
fuente
myhostname
va a/etc/hostname
(seguido dehostname myhostname
). Y127.0.0.1 mydomain.com myhostname.com localhost
va a/etc/hosts
. Más recarga porexim
si acaso.Tengo el mismo problema. Necesito cambiar el nombre de host del correo, porque algunos correos electrónicos fallan, cuando se enviaron. Con este error:
Así que lo cambio en
/etc/exim.config
el param primary_hostnameAlgún código de este archivo:
fuente
en WHM goto Exim Configuration Manager -> Editor avanzado
desplácese hacia abajo hasta encontrar "Agregar configuraciones de configuración adicionales" (un gran botón azul) y haga clic en él.
en la nueva línea, agregue [nombre_host_primero] = [midominio.com]
desplácese hasta la parte inferior y haga clic en Guardar.
fuente