¿Por qué OS X puede enviar correos electrónicos sin configurar primero SMTP?

9

Cuando intento el comando en la terminal, se envía un correo electrónico. He comprobado que no se está ejecutando SMTP local, entonces, ¿cuál es el mecanismo utilizado por Apple detrás de escena?

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

Respuestas:

4

mail en OS X en realidad parece generar Postfix el tiempo suficiente para manejar el correo, luego lo derribó poco tiempo después.

Para ver esto en acción, intente telnet localhost 25antes del comando de correo, luego inmediatamente después, luego espere 5 minutos y vuelva a intentarlo.

No estoy seguro de que esta sea realmente una respuesta adecuada a la pregunta porque no explica cómo se genera y derriba Postfix, pero espero que ayude a responder la pregunta.

zigg
fuente
7

Los demonios o servidores SMTP están ahí para recibir correo, no para enviarlo. En su ejemplo, mailes puramente un cliente de correo electrónico, y se conecta a cualquier servidor definido por el registro MX de DNS apropiado bar.com, y no tiene ningún requisito para que se ejecute un servidor local para hacerlo.

Sin embargo, dependiendo de la configuración de su correo, es posible que deba iniciar sesión en un servidor de correo saliente para autenticarse, o si nada más, para proporcionar las direcciones de remitente y de remitente, etc. Ahora, puede hacer todo esto en la línea de comando pasando el correspondiente parámetros en el terminal, pero siempre que haya configurado su aplicación de Correo, esta configuración ya está almacenada, y simplemente activando temporalmente el subsistema de correo los comandos del terminal pueden obtener esa información y ahora tienen uno o más servidores de correo smtp que pueden elige enviar mensajes salientes. Luego terminará los procesos cuando se complete.

Puede probar todo esto en la línea de comando y enviar el correo sin tener que usar un cliente de correo. No estoy en una Mac, por lo que es posible que alguien que lo esté edite estos comandos, pero puede hacer esto:

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)

Lea esto para obtener más información sobre el correo electrónico a través de telnet: es una excelente herramienta de depuración

stuffe
fuente
Si bien su respuesta recibió el mayor de los votos, pero está mal. Mac generará un Postfix para recibir el correo electrónico y se cerrará automáticamente como @zigg sugirió anteriormente. Gracias por tu esfuerzo de todos modos.
Yoga
No es que sea incorrecto como tal, todos los detalles son correctos, pero no necesariamente responde a su pregunta en su forma actual. Editado para hacerlo.
estuffe
@stuffe dijo: "Los demonios o servidores SMTP están ahí para recibir correo, no para enviarlo". Debo suplicar que difieran. Como este es un comentario, solo citaré esto de Wikipedia: "las aplicaciones de correo de cliente a nivel de usuario generalmente usan SMTP solo para enviar mensajes"
Seamus
1

Creo que mailsiempre usa sendmail local para enviar correos. En OSX sendmail es postfix. Y definitivamente se usa.

Puede consultar los encabezados de correo Received: by [Your-Mac] (Postfix, from userid ....

Sin embargo, no es una buena idea usar mail(o mejor postfix) de esta manera. La mejor práctica sería utilizar un host inteligente para su Postfix local para evitar restricciones de firewall de uso frecuente.

Puede encontrar una solución en SMTP Smart Host Setup para Postfix en Snow Leopard que funciona para mí (también en Lion, Mountain Lion).

insecto
fuente
Desde el encabezado, encontré ... Recibido: por 10.194.242.101 con identificación SMTP xxx; ... X-Recibido: por 10.68.92.196 con identificación SMTP yyy; ... pero mi IP interna es 192.168.xx
Yoga