Quando provo il comando nel terminale, viene inviata un'email. Ho controllato che non ci sia SMTP locale in esecuzione, quindi qual è il meccanismo utilizzato da Apple dietro la scena?
echo "Hello" | mail -s "Test" [email protected]
Quando provo il comando nel terminale, viene inviata un'email. Ho controllato che non ci sia SMTP locale in esecuzione, quindi qual è il meccanismo utilizzato da Apple dietro la scena?
echo "Hello" | mail -s "Test" [email protected]
mail
su OS X sembra effettivamente generare Postfix abbastanza a lungo da occuparsi della posta, quindi distruggerla poco tempo dopo.
Per vedere questo in azione, prova telnet localhost 25
prima del comando mail, quindi subito dopo, quindi attendi 5 minuti e riprova.
Non sono sicuro che questa sia effettivamente una risposta corretta alla domanda perché non spiega come Postfix è generato e abbattuto, ma si spera che aiuti a rispondere alla domanda.
Daemon o server SMTP sono lì per ricevere la posta, non per inviarla. Nel tuo esempio, mail
è puramente un client di posta elettronica e si connette a qualsiasi server definito dal record MX DNS appropriato di bar.com
e non ha alcun requisito per l'esecuzione di un server locale.
Tuttavia, a seconda della configurazione della tua posta, potresti aver bisogno di accedere a un server di posta in uscita per l'autenticazione, o se non altro per fornire mittenti e indirizzi di ritorno ecc. Ora, puoi fare tutto ciò dalla riga di comando di passando i parametri appropriati sul terminale, ma finché hai impostato la tua app di posta, questa configurazione è già memorizzata, e semplicemente accendendo temporaneamente il sottosistema di posta i comandi del terminale possono afferrare tali informazioni e ora avere uno o più smtp di posta server che possono scegliere di inviare messaggi in uscita. Al termine, terminerà i processi.
Puoi testare tutto questo alla riga di comando e inviare la posta senza dover usare un client di posta. Non sono su un Mac, quindi questi comandi potrebbero aver bisogno di essere modificati da qualcuno che lo è, ma puoi farlo:
nslookup
set type=mx
bar.com
exit
telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)
Leggi questo per ulteriori informazioni sull'email via telnet: è un ottimo strumento di debug
Penso che mail
usi sempre sendmail locale per inviare mail. In OSX sendmail è postfix. Ed è decisamente usato.
Puoi controllare le intestazioni della posta Received: by [Your-Mac] (Postfix, from userid ...
.
Tuttavia non è una buona idea usare mail
(o meglio postfix
) come questo. La migliore pratica sarebbe quella di utilizzare un SmartHost per il tuo postfix locale per evitare restrizioni del firewall spesso utilizzate.
Puoi trovare una soluzione su Configurazione Smart Host SMTP per Postfix nella neve Leopard che funziona per me (anche su Lion, Mountain Lion).