¿Por qué se ha introducido .localdomain en Postfix?

2

Al enviar un correo electrónico en mi máquina local ( echo foo | sendmail $USER ), el correo electrónico contiene From: (my-user-name)@(my-machine-name).localdomain .

Según mis herramientas de línea de comandos, mi host no parece tener una extensión de dominio local agregada a cualquiera de los diversos hosts los nombres que macOS permite .

$ grep localdomain /etc/hosts
$ grep localdomain /Library/Preferences/SystemConfiguration/preferences.plist
$ scutil --get ComputerName
(my-machine-name)
$ scutil --get HostName
(my-machine-name)
$ scutil --get LocalHostName
(my-machine-name)
$ hostname -f
(my-machine-name)
$ alias hostname
-bash: alias: hostname: not found

Mi investigación muestra que .localdomain proviene de una Actualización de Postfix . Sin embargo, el registro de Git solo contiene mensajes genéricos, y no pude extraer del archivo HISTORY por qué se agregó.

  1. ¿Quién ha introducido .localdomain y por qué?
  2. ¿Para qué usos específicos es aplicable, si corresponde? (por ejemplo, ¿debe usarse el correo electrónico Message-ID ?)
pregunta forthrin 26.04.2018 - 14:32

1 respuesta

5

No hay un cliente de correo electrónico en su ejemplo (además de posiblemente el echo ); sendmail es parte del agente de transporte de correo que, en las versiones actuales de macOS, es por defecto, Postfix. Postfix establecerá el dominio desde el archivo de configuración o, en su defecto, a algún valor interno o búsqueda de llamadas al sistema:

$ postconf | grep localdomain
mydomain = localdomain
$ postconf -n | grep "^mydomain"
$ 

Esto muestra que (al menos en mi sistema) el valor mydomain es localdomain y que ese valor no está establecido en /etc/postfix/main.cf . Por lo tanto, debe proceder de un valor interno o mediante una llamada del sistema. (Puede configurarlo en algo apropiado en main.cf ; muchos Agentes de Transporte de Correo rechazarán el correo de dichos dominios locales porque los spammers, o de lo contrario puntúan el mensaje como más probable que sea spam. Esto puede no ser un problema si el correo electrónico nunca llegar a internet.)

$ strings /usr/sbin/postfix | grep localdomain
localdomain
$ cfu 'char buf[254]; gethostname(buf,254); printf("%s\n",buf)'
glide.local
$ 

Muestra que postfix podría estar usando localdomain como un valor interno, ya que esa cadena aparece en el binario. Esto es probable dado que gethostbyname(3) devuelve algo que no es localdomain en mi sistema (probablemente no tenga cfu pero hay muchas maneras de ejecutar llamadas arbitrarias al sistema). Si se descarga el código fuente de Postfix , existen varias referencias a localdomain :

$ find . -name "*.c" -exec fgrep localdomain {} +
./src/global/mail_addr_find.c:    UPDATE(var_mydomain, "localdomain");
./src/global/mail_addr_find.c:    UPDATE(var_myorigin, "localdomain");
./src/global/mail_addr_find.c:    UPDATE(var_mydest, "localhost.localdomain");
./src/smtp/smtp_map11.c:    UPDATE(var_myhostname, "localhost.localdomain");
./src/smtp/smtp_map11.c:    UPDATE(var_mydomain, "localdomain");
...

Por lo tanto, es muy probable que este valor sea establecido internamente por Postfix, y si es necesario, debe ajustarse editando la configuración.

    
respondido por el thrig 26.04.2018 - 16:31

Lea otras preguntas en las etiquetas