Perché è stato introdotto .postaldomain in Postfix

2

Quando invii email sul mio computer locale ( echo foo | sendmail $USER ), l'email contiene From: (my-user-name)@(my-machine-name).localdomain .

Secondo i miei strumenti a riga di comando, il mio host non sembra avere un'estensione di dominio locale aggiunta a nessuno dei vari host nomi macOS consente .

$ 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

La mia ricerca mostra .localdomain deriva da un aggiornamento Postfix . Tuttavia, il log Git contiene solo messaggi generici e non è stato possibile ottenere dal file HISTORY perché è stato aggiunto.

  1. Chi ha introdotto .localdomain e perché?
  2. Per quali usi specifici è applicabile, se esiste? (ad esempio dovrebbe essere usato email Message-ID ?)
posta forthrin 26.04.2018 - 14:32
fonte

1 risposta

5

Nel tuo esempio non ci sono client di posta elettronica (oltre al possibile echo ); sendmail fa parte dell'agente di trasporto posta che sulle versioni correnti di macOS è di default Postfix. Postfix imposterà il dominio dal file di configurazione o in mancanza di alcuni valori interni o ricerca di sistema:

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

Questo mostra che (almeno sul mio sistema) il valore mydomain è localdomain e che quel valore non è impostato in /etc/postfix/main.cf . Deve quindi venire da un valore interno o tramite qualche chiamata di sistema. (È possibile impostarlo su qualcosa di appropriato in main.cf ; molti agenti di trasporto della posta rifiuteranno la posta da tali domini locali perché gli spammer, o altrimenti segnano il messaggio come più probabile che sia spam. Questo potrebbe non essere un problema se l'e-mail non sarà mai raggiungere Internet.)

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

Mostra che postfix potrebbe utilizzare localdomain come valore interno, poiché tale stringa appare nel file binario. Ciò è probabile dato che gethostbyname(3) restituisce qualcosa che non è localdomain sul mio sistema (probabilmente non hai cfu ma ci sono molti modi per eseguire chiamate di sistema arbitrarie). Se uno scarica il codice sorgente per Postfix , ci sono in effetti vari riferimenti 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");
...

Quindi è molto probabile che questo valore sia impostato internamente da Postfix e, se necessario, dovrebbe essere modificato modificando la configurazione.

    
risposta data 26.04.2018 - 16:31
fonte

Leggi altre domande sui tag