2008-08-28 13 views
15

Durante las últimas semanas, he estado tratando de conocer cómo funciona el correo electrónico. Entiendo muy bien el proceso de un cliente que recibe correo de un servidor que usa POP. También entiendo cómo una computadora cliente puede usar SMTP para pedirle a un servidor SMTP que envíe un mensaje. Sin embargo, todavía estoy perdiendo algo ...¿Qué protocolos y servidores están involucrados en el envío de un correo electrónico y cuáles son los pasos?

La manera en que yo entiendo, el correo saliente tiene que hacer tres viajes:

  1. de cliente (usuario de Gmail usando Thunderbird) a un servidor (Gmail)
  2. primer servidor (Gmail) a segundo servidor (Hotmail)
  3. segundo servidor (Hotmail) al segundo cliente (usuario de Hotmail usando OS X mail)

Según tengo entendido, el paso uno utiliza SMTP para que el cliente comunicar . El cliente se autentica de algún modo (por ejemplo, con USER y PASS), y luego envía un mensaje al servidor de gmail.

Sin embargo, no entiendo cómo el servidor de gmail transfiere el mensaje al servidor de hotmail.

Para el paso tres, estoy bastante seguro, el servidor de hotmail usa POP para enviar el mensaje al cliente de hotmail (utilizando autenticación, de nuevo).

Entonces, la gran pregunta es: cuando hago clic en enviar El correo envía mi mensaje a mi servidor de gmail, ¿cómo reenvía mi servidor gmail, digamos, un servidor de hotmail para que mi amigo lo reciba?

¡Muchas gracias!

~ Jason


Gracias, eso ha sido útil hasta ahora.

Según tengo entendido, el primer cliente envía el mensaje al primer servidor que usa SMTP, a menudo a una dirección como smtp.mail.SOMESERVER.com en el puerto 25 (generalmente).

A continuación, SOMESERVER vuelve a utilizar SMTP para enviar el mensaje a RECEIVESERVER.com en el puerto 25 (no a smtp.mail.RECEIVESERVER.com ni a nada sofisticado).

Luego, cuando el destinatario le pide a RECEIVESERVER su correo, usando POP, recibe el mensaje ... ¿verdad?

Gracias de nuevo (en especial a dr-jan),

Jason

Respuesta

18

El servidor SMTP en Gmail (que aceptó el mensaje de Thunderbird) enrutará el mensaje al destinatario final.

Lo hace mediante el uso de DNS para buscar el registro MX (intercambiador de correo) para la parte del nombre de dominio de la dirección de correo electrónico de destino (hotmail.com en este ejemplo). El servidor DNS devolverá una dirección IP a la que se debe enviar el mensaje. Se espera que el servidor en la dirección IP de destino ejecute SMTP (en el puerto estándar 25) para que pueda recibir los mensajes entrantes.

Una vez que el mensaje ha sido recibido por el servidor de hotmail, se almacena hasta que el usuario apropiado inicie sesión y recupere sus mensajes utilizando POP (o IMAP).

Jason - Para responder a su seguimiento ...

Entonces, SOMESERVER utiliza SMTP nuevo para enviar el mensaje a RECEIVESERVER.com en el puerto 25 (no smtp.mail.RECEIVESERVER.com o algo de fantasía) .

Correcto: el nombre de dominio a enviar se toma como todo después de '@' en la dirección de correo electrónico del destinatario. A menudo, RECEIVESERVER.com es un alias para algo más específico, digamos algo como entraing.RECEIVESERVER.com, (o, de hecho, smtp.mail.RECEIVESERVER.com).

Puede utilizar nslookup para consultar los servidores DNS locales (esto funciona en Linux y en una ventana cmd de Windows):

nslookup 
> set type=mx 
> stackoverflow.com 
Server:   158.155.25.16 
Address:  158.155.25.16#53 

Non-authoritative answer: 
stackoverflow.com  mail exchanger = 10 aspmx.l.google.com. 
stackoverflow.com  mail exchanger = 20 alt1.aspmx.l.google.com. 
stackoverflow.com  mail exchanger = 30 alt2.aspmx.l.google.com. 
stackoverflow.com  mail exchanger = 40 aspmx2.googlemail.com. 
stackoverflow.com  mail exchanger = 50 aspmx3.googlemail.com. 

Authoritative answers can be found from: 
aspmx.l.google.com  internet address = 64.233.183.114 
aspmx.l.google.com  internet address = 64.233.183.27 
>     

Esto nos muestra que el correo electrónico a cualquier persona en stackoverflow.com se deben enviar a uno de los servidores de gmail que se muestran arriba.

El artículo de Wikipedia mencionado (http://en.wikipedia.org/wiki/Mx_record) analiza los números de prioridad que se muestran arriba (10, 20, ..., 50).

5

Usted está buscando el agente de transferencia de correo, Wikipedia tiene a nice article sobre el tema.

Dentro de los servicios de tratamiento de mensajes de Internet (MHS), un agente de agente de transferencia de mensajes de correo o transferencia (MTA) o retransmisión de correo es un software que transfiere mensajes de correo electrónico desde un ordenador a otro usando una arquitectura de aplicaciones cliente-servidor. Un MTA implementa las porciones de cliente (envío) y servidor (recepción) del Protocolo simple de transferencia de correo.

Los términos servidor de correo, intercambiador de correo y host MX también pueden referirse a una computadora que realiza la función MTA.El Sistema de nombres de dominio (DNS) asocia un servidor de correo a un dominio con registros de recursos intercambiadores de correo (MX) que contienen el nombre de dominio de un host que proporciona servicios MTA.

1

Los pasos 2 a 3 (es decir, Gmail a Hotmail) normalmente suceden a través de SMTP (o ESMTP - SMTP extendido).

Hotmail no envía nada a un cliente a través de POP3. Es importante entender algunos de los matices aquí. El cliente se comunica con Hotmail a través de POP3 y solicita su correo. (es decir, el cliente inicia la discusión).

3

El primer servidor buscará DNS para un registro MX del servidor de Hotmail. MX es un registro especial que define un servidor de correo para cierto dominio. Conociendo la dirección IP del servidor de Hotmail, el servidor de GMail enviará el mensaje usando el protocolo SMTP y esperará una respuesta. Si el servidor de Hotmail falla, el servidor de GMail intentará volver a enviar el mensaje (dependerá de la configuración del software del servidor). Si el proceso termina bien, entonces, de lo contrario, el servidor de GMail le notificará que no pudo entregar el mensaje.

2

Si realmente desea saber cómo funciona el correo electrónico, puede leer el SMTP RFC o el POP3 RFC.

1

Todos los correos electrónicos se transfieren utilizando SMTP (o ESMTP).
Lo importante es entender que cuando se envía un mensaje a [email protected] el destino de este mensaje no es su PC. El destino es la carpeta de la bandeja de entrada de Someguy en el servidor de hotmail.com.
Después de que el mensaje llega a su destino.El usuario puede verificar si tiene nuevos mensajes en su cuenta en el servidor de hotmail y recuperarlos usando POP3

También sería posible enviar el mensaje sin usar el servidor de gmail, enviándolo directamente desde su PC a hotmail usando SMTP .

4

Puede que también le interese saber por qué el enlace de GMail a HotMail usa SMTP, al igual que su cliente de Thunderbird. En otras palabras, dado que su cliente puede enviar correos electrónicos a través de SMTP, y puede usar DNS para obtener el registro MX de hotmail.com, ¿por qué simplemente no lo envía allí directamente, omitiendo gmail.com por completo?

Hay un par de razones, algunas históricas y otras por razones de seguridad. En la pregunta original, se suponía que su cliente Thunderbird inicia sesión con un nombre de usuario y contraseña. Con frecuencia este no es el caso. SMTP en realidad no requiere un inicio de sesión para enviar un correo. Y SMTP no tiene manera de saber quién envía realmente el correo. Por lo tanto, ¡el spam nació!

Desafortunadamente, todavía hay muchos servidores SMTP que permiten que cualquiera pueda conectarse y enviar correo, confiando ciegamente en que el remitente es quien dice ser. Estos servidores se denominan "retransmisiones abiertas" y son rutinariamente incluidos en la lista negra por administradores más inteligentes de otros servidores de correo, debido al spam que generan.

Los administradores de servidores SMTP responsables configuran su servidor para aceptar el correo para su entrega solo en casos especiales 1) el correo procede de una red "propia" o 2) el correo se envía a su propia red o 3) el usuario presenta credenciales que lo identifican como un remitente confiable. El caso n. ° 1 es probablemente lo que sucede cuando envía correos del trabajo; su máquina está en la red de confianza, por lo que puede enviar correos a cualquier persona. Muchos servidores de correo corporativo aún no requieren autenticación, por lo que puede hacerse pasar por cualquier persona en su oficina. ¡Divertido! El caso n. ° 2 es cuando alguien te envía un correo. Y el caso n. ° 3 es probablemente lo que sucede con su ejemplo de GMail. No vienes de una red confiable, acabas de salir por Internet con los spammers. Pero al usar una contraseña, puedes probar a GMail que eres quien dices ser.

El aspecto histórico es que en los viejos tiempos, el enlace entre gmail y hotmail era intermitente. Al poner en cola su correo en un servidor local, puede lavarse las manos, sabiendo que cuando se establece un enlace, el servidor local podría transferir sus mensajes al servidor remoto, que mantendría el mensaje hasta que el agente del destinatario lo recogió .

Cuestiones relacionadas