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 localhostcomo 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_hostnamevariable 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/mailnamealguna 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 -ftodaví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 -faú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/hostnamenormalmente no contiene el FQDN en sistemas Debian, solo el nombre de host corto./etc/hostspodría ser127.0.0.2 mydomain.com myhostname(127.0.0.2funciona 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, perolocalhostes 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/hostnameno 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_HOSTNAMEen 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.confdespués de cambiar la configuración. Y reiniciar generalmente no es necesario después de eso.eximgeneralmente 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.confpuede contener solo la línea de arriba , pero en el momento en que creas el archivo,/var/lib/exim4/config.autogeneratedse ignora .../etc/exim4/exim4.conf.localmacros, para dividir/etc/exim4/conf.d/main/000_localmacros(los archivos enmaindir se procesan primero) Y ejecutaupdate-exim4.conf+systemctl reload exim4despué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 elFromencabezado.La
primary_hostnamevariable 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/hostnamey/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 resuelvafooenfoo.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 -fresultado 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 -fy 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_hostnameno 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_dataes$primary_hostname. En los sistemas Debian, puede anularlo utilizando laREMOTE_SMTP_HELO_DATAvariable, 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
myhostnameva a/etc/hostname(seguido dehostname myhostname). Y127.0.0.1 mydomain.com myhostname.com localhostva a/etc/hosts. Más recarga poreximsi 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.configel 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