SMTP Inside Out

Como funciona o correo electrónico en internet

Xa se preguntas o que ocorre cando preme o botón Enviar no seu programa de correo electrónico? Probablemente non, creo - sempre que funcione. Esta é exactamente a razón pola que debes preguntarche. No caso de que algo non funcione, é bo saber que non funciona. Normalmente, esa é a metade da solución.

Cando envía un correo electrónico SMTP entra en xogo. O SMTP é curto para o protocolo simple de transferencia de correo definido no RFC 5321: o protocolo simple de transferencia de correo. O seu cliente de correo fala co servidor SMTP usando este procedemento limpo e sinxelo para obter o correo electrónico dun lugar a outro.

A Flirt

O seu programa de correo electrónico convértese nun cliente SMTP , conéctase ao porto 25 do seu servidor de correo (normalmente o porto SMTP ) e - di EHLO . Os computadores, ao final, son só humanos e o que conta é que quere ser educado. Na verdade, non intenta ser amable senón usar adicións posteriores a SMTP que provocaron dous sabores do comando HELO máis tarde (o comando SMTP xeralmente consta de catro caracteres).

Dous Sabores de HELO

O EHLO, sendo o máis recente fai que o servidor anuncie todas as funcións adicionais (como a notificación de estado de entrega ou a capacidade de transportar mensaxes que conteñan outros que non sexan os caracteres ASCII seguros) que soporta.

Non todos os servidores permitirán este saúdo, pero é necesario aceptar un HELO sinxelo que, naturalmente, supón que non hai características adicionais. Os comandos de hello requiren que o cliente especifique o seu dominio despois do ** LO. Na práctica, isto parece algo así:

220 mail.domain.net servidor ESMTP
HELO
501 HELO require enderezo de dominio
HELO localhost
250 mail.domain.net Ola localhost [127.0.0.1], satisfeito coñecerche

(A miña entrada está en cursiva , a saída dos servidores é negra; as liñas que comezan cun 5 indican un erro ).

O remitente

O resto do protocolo realmente merece o atributo simple. Se desexa enviar un correo electrónico, comeza coas palabras clave MAIL FROM:. A continuación amósase o enderezo de correo electrónico do remitente, como suxeriu o de. Non esqueza poñer corchetes ao redor da dirección, porén (como ). Seguindo o noso exemplo, temos:

MAIL FROM:
250 sender@example.com ... Sender ok

O destinatario

Despois de que o servidor aceptase o enderezo do remitente, o cliente pode indicar a dirección do destinatario. O comando para esta acción, RCPT TO: de novo é bastante sugerente. Quero enviar un correo a min mesmo :

RCPT A: recipient@example.com
250 support@lifewireguide.com ... Receptor ok (será cola)

Que a cola do servidor sexa só iso: gardará o correo localmente e envialo xunto con todo o outro correo en cola en intervalos (por exemplo, cada 30 minutos). Este comportamento depende da configuración e o servidor tamén pode enviar o correo instantaneamente.

Estamos case listos. O que aínda falta é a parte importante: a mensaxe real.

A mensaxe

Agora que o "sobre" está rematado, os datos da mensaxe de correo electrónico tal e como se pode seguir. Este "dato" consiste no corpo do correo electrónico, así como nos campos de cabeceira .

O comando para iniciar o estado que fai que o servidor acepte a mensaxe é DATA . A continuación móstranse todos os campos de cabeceira da mensaxe de correo electrónico e, a continuación, o corpo, que compoñen só un gran bloque de texto (ou datos). Para dicir ao servidor que a entrada está rematada emprégase un punto nunha liña por si só (\ r \ n. \ R \ n). Entón envio a miña mensaxe:

DATOS
354 Introduce o correo, remata con "." nunha liña por si só
ID de mensaxe:
Data: domingo, 17 de agosto de 1997 18:48:15 +0200
De: Heinz Tschabitscher
Para: Heinz Tschabitscher
Asunto: para o concurso Summarize-Proust

Apagado ao mundo de Swan!
.
250 SAA19153 Mensaxe aceptada para a entrega

Si, isto significa que pode indicar un nome completamente diferente ao que o correo electrónico vai no campo Para:. Por exemplo, pode usar " Lista de destinatarios suprimida" .

O Fin

Agora podes enviar tantos correos electrónicos como queiras repetir os pasos de MAIL FROM: a . . Se rematou con iso, pode saír do servidor co comando QUIT e iso é só o que facemos:

QUIT
221 Adios

Como podo facer isto?

A solución non trivial é telnet ao seu servidor de correo saínte (pode atopar o seu enderezo na configuración da conta do seu cliente de correo electrónico ) no porto 25.

O xeito máis sinxelo é usar esta miniaplicación de Java , que intenta imitar o protocolo SMTP e guíao a través do diálogo.