Perché OS X è in grado di inviare e-mail senza prima configurare SMTP?


9

Quando provo il comando nel terminale, viene inviata un'e-mail. Ho verificato che non è in esecuzione alcun SMTP locale, quindi qual è il meccanismo utilizzato da Apple dietro le quinte?

echo "Hello" | mail -s "Test" foo@bar.com

Risposte:


4

mail su OS X sembra effettivamente generare Postfix abbastanza a lungo da gestire la posta, per poi smontarla poco dopo.

Per vederlo in azione, prova telnet localhost 25prima del comando mail, quindi subito dopo, quindi attendi 5 minuti e riprova.

Non sono sicuro che questa sia in realtà una risposta adeguata alla domanda perché non spiega come Postfix viene generato e abbattuto, ma speriamo che aiuti a rispondere alla domanda.


7

Demoni 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 qualunque server sia definito dal record MX DNS DNS appropriato bar.come non ha alcun requisito per l'esecuzione di un server locale per farlo.

Tuttavia, a seconda della configurazione della posta, potrebbe essere necessario accedere a un server di posta in uscita per l'autenticazione, oppure se non altro per fornire gli indirizzi mittente e di ritorno ecc. Ora, è possibile eseguire tutto ciò dalla riga di comando passando l'appropriato parametri sul terminale, ma fino a quando hai impostato l'app Mail, questa configurazione è già memorizzata e semplicemente accendendo temporaneamente il sottosistema di posta i comandi del terminale possono acquisire tali informazioni e ora hanno uno o più server di posta smtp che possono scegliere di inviare messaggi in uscita. Terminerà quindi i processi al termine.

Puoi provare tutto questo dalla riga di comando e inviare la posta senza dover usare un client di posta. Non sono su un Mac, quindi potrebbe essere necessario modificare questi comandi 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 maggiori informazioni sull'e-mail via telnet: è un ottimo strumento di debug


Mentre la tua risposta ha ricevuto il massimo dei voti, ma è sbagliata. Mac genererà un Postfix per ricevere l'e-mail e spegnersi automaticamente come suggerito da @zigg sopra. Grazie comunque per il tuo impegno.
Yoga

Non è che sia errato in quanto tale, tutti i dettagli sono corretti, ma non risponde necessariamente alla tua domanda nella sua forma attuale. A cura di farlo.
stuffe

@stuffe ha dichiarato: "Demoni o server SMTP sono lì per ricevere la posta, non per inviarla". Devo supplicare di dissentire. Dato che questo è un commento, citerò solo questo da Wikipedia: "Le applicazioni di posta client a livello di utente in genere usano SMTP solo per inviare messaggi"
Seamus,

1

Penso che mailusi sempre sendmail locale per inviare mail. In OSX sendmail è postfix. Ed è sicuramente usato.

Puoi controllare le intestazioni della posta Received: by [Your-Mac] (Postfix, from userid ....

Tuttavia non è una buona idea usare mail(o meglio postfix) in questo modo. La migliore pratica sarebbe quella di utilizzare uno Smart Host per il tuo Postfix locale per evitare le restrizioni del firewall usate spesso.

È possibile trovare una soluzione all'installazione SMTP Smart Host per Postfix in Snow Leopard che funziona per me (anche su Lion, Mountain Lion).


Dall'intestazione, ho trovato ... Ricevuto: entro il 10.194.242.101 con ID SMTP xxx; ... X-Ricevuto: entro il 10.68.92.196 con ID SMTP yyy; ... ma il mio IP interno è 192.168.xx
Yoga
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.