SMTP Inside Out

Com funciona el correu electrònic a Internet

Alguna vegada us heu preguntat què passa quan premeu el botó Envia al vostre programa de correu electrònic? Probablement no, suposo que, sempre que funcioni. Això és exactament el motiu pel qual s'hauria de preguntar, però. En el cas que alguna cosa no funcioni, és bo saber què no funciona. En general, aquesta és la meitat de la solució.

Quan envieu correu electrònic, SMTP entra en joc. SMTP és curta per al Protocol simple de transferència de correu definit a RFC 5321: Protocol simple de transferència de correu. El vostre client de correu parla al servidor SMTP mitjançant aquest procediment senzill i senzill per obtenir correu electrònic d' un lloc a un altre.

La flirtia

El vostre programa de correu electrònic es converteix en un client SMTP , es connecta al port 25 del vostre servidor de correu (normalment el port SMTP ) i - diu EHLO . Els ordinadors, al final, només són humans i el que compta és que vol ser educat. En realitat, no intenta ser amable, sinó que utilitza addicions posteriors a SMTP que han generat dos sabors de la comanda HELO més tard (l'ordre SMTP generalment consisteix en quatre caràcters).

Dos sabors d'HELO

EHLO, sent el més recent, fa que el servidor publiqui totes les funcions addicionals (com ara la notificació d'estat de lliurament o la capacitat de transportar missatges que no siguin els caràcters ASCII segurs) que suporta.

No tots els servidors permetran aquesta salutació, però cal acceptar un HELO simple que, naturalment, assumeix que no hi ha cap característica addicional. Les dues ordres hola requereixen que el client especifiqui el seu domini després del ** LO, però. A la pràctica, això es veu com:

220 mail.domain.net Servidor ESMTP
HELO
501 HELO requereix adreça de domini
HELO localhost
250 mail.domain.net Hola localhost [127.0.0.1], satisfet de conèixer-te

(La meva entrada és en cursiva , la sortida dels servidors és negra; les línies que comencen amb un 5 indiquen un error ).

El remitent

La resta del protocol realment mereix l'atribut simple. Si voleu enviar un correu electrònic, comenceu amb les paraules clau MAIL FROM:. A continuació, apareix l' adreça de correu electrònic del remitent, tal com suggereix la pàgina. No us oblideu de posar els claudàtors de l'adreça, però (com ). Seguint el nostre exemple, tenim:

CORREU ELECTRÒNIC:
250 sender@example.com ... Sender ok

El destinatari

Una vegada que el servidor hagi acceptat l'adreça del remitent, el client pot proporcionar l'adreça del destinatari. El comandament per a aquesta acció, RCPT TO: de nou és més aviat suggeridor. Vull enviar correu electrònic a mi mateix :

RCPT A: recipient@example.com
250 support@lifewireguide.com ... Receptor ok (farà la cua)

Que el servidor faci cua significa només que: guardarà el correu localment i l'enviarà juntament amb l'altre correu en cua en intervals (per exemple, cada 30 minuts). Aquest comportament depèn de la configuració i el servidor també pot enviar el correu a l'instant.

Estem gairebé acabats. Encara falta, però, la part important: el missatge real.

El missatge

Ara que el "sobre" ha acabat, les dades del missatge de correu electrònic tal com es pot seguir. Aquesta "informació" consisteix en el cos del correu electrònic, així com els camps de capçalera .

La comanda per iniciar l'estat que fa que el servidor accepti el missatge és DADES . A continuació, es mostren tots els camps de capçalera del missatge de correu electrònic i després el cos, que formen només un gran bloc de text (o dades). Per indicar al servidor que s'ha acabat l'entrada, s'utilitza un punt en una línia per si mateix (\ r \ n. \ R \ n). Així que envio el meu missatge:

DADES
354 Introduïu el correu, finalitzeu amb "." en una línia per si mateixa
Identificador del missatge:
Data: dg., 17 ag. 1997 18:48:15 +0200
De: Heinz Tschabitscher
Per: Heinz Tschabitscher
Assumpte: per al concurs Summarize-Proust

Apagat al món de Swan!
.
250 SAA19153 Missatge acceptat per al lliurament

Sí, això vol dir que podeu indicar un nom completament diferent del que es dirigeix ​​al camp A:. Per exemple, podeu utilitzar " Llista de destinataris suprimits" .

La fi

Ara podeu enviar tants correus electrònics com vulgueu repetir els passos de MAIL FROM: a . . Si heu acabat amb això, podeu sortir del servidor amb l'ordre QUIT i això és el que fem:

QUIT
221 Adéu

Com puc fer això?

La solució no trivial és telnet al servidor de correu sortint (podeu trobar la seva adreça a la configuració del compte del vostre client de correu electrònic ) al port 25.

La manera més senzilla és utilitzar aquesta miniaplicació Java , que intenta imitar el protocol SMTP i us guiarà pel diàleg.