SMTP Inside Out

Ako funguje internetový e-mail

Premýšľali ste niekedy o tom, čo sa stane, keď stlačíte tlačidlo Odoslať v e-mailovom programe? Pravdepodobne nie, myslím - pokiaľ bude fungovať. To je práve dôvod, prečo by ste sa mali diviť. V prípade, že niečo nefunguje, je dobré vedieť, čo nefunguje. Zvyčajne je to polovica riešenia.

Pri odosielaní e-mailu sa hraje SMTP . SMTP je krátky pre protokol Simple Mail Transfer Protocol definovaný v RFC 5321: Simple Mail Transfer Protocol. Váš poštový klient komunikuje s SMTP serverom pomocou tohto čistého a jednoduchého postupu na získanie e-mailu z jedného miesta na druhé.

The Flirt

Váš e-mailový program sa stáva klientom SMTP , pripája sa na port 25 poštového servera (zvyčajne port SMTP ) a - hovorí EHLO . Počítače sú nakoniec len ľudské a to, čo je dôležité, je, že chce byť zdvorilý. V skutočnosti sa nepokúša byť zdvorilí, ale používať neskoršie dodatky k SMTP, ktoré priniesli dve príchute neskoršieho príkazu HELO (príkaz SMTP sa skladá z štyroch znakov).

Dve príchute HELO

EHLO, čo je posledné, spôsobuje, že server inzeruje všetky ďalšie funkcie (napríklad oznámenie stavu doručenia alebo možnosť prepravovať správy obsahujúce iné než bezpečné znaky ASCII), ktoré podporuje.

Nie každý server povolí tento pozdrav, ale je potrebné prijať jednoduchý HELO, ktorý prirodzene predpokladá, že nie sú prítomné žiadne ďalšie funkcie. Oba hello príkazy vyžadujú od klienta, aby špecifikoval svoju doménu po ** LO. V praxi to vyzerá niečo ako:

220 mail.domain.net Server ESMTP
AHOJ
501 HELO vyžaduje doménovú adresu
HELO localhost
250 mail.domain.net Ahoj localhost [127.0.0.1], s radosťou vás spoznávam

(Môj vstup je kurzíva , výstup serverov je čierny, riadky začínajúce číslom 5 označujú chybu .)

Odosielateľ

Zvyšok protokolu si skutočne zaslúži jednoduchý atribút. Ak chcete odoslať e-mail, začnete s kľúčovými slovami MAIL FROM:. Nasleduje e-mailová adresa odosielateľa podľa odporúčania od. Nezabudnite uviesť aj zátvorky okolo adresy (napríklad ). Pri pokračovaní nášho príkladu máme:

MAIL FROM:
250 odosielateľ@example.com ... odosielateľ ok

Príjemca

Po prijatí adresy odosielateľa môže klient uviesť adresu príjemcu. Príkaz pre túto akciu, RCPT TO: Opäť je skôr sugestívny. Chcem poslať poštu na seba :

RCPT TO: recipient@example.com
250 support@lifewireguide.com ... Príjemca ok (bude fronta)

To, že server zaradí do fronty, znamená len to, že lokálnu správu uloží a posiela spolu so všetkými ďalšími mailmi v poradí (napríklad každých 30 minút). Toto správanie závisí od konfigurácie a server môže tiež okamžite doručiť poštu.

Už sme takmer hotoví. To, čo stále chýba, je dôležitá súčasť: skutočná správa.

Správa

Teraz, keď je "obálka" dokončená, môžu nasledovať údaje e-mailovej správy. Tieto "údaje" pozostávajú z telefónu e-mailu a tiež z hlavičkových polí .

Príkaz na iniciovanie stavu, vďaka ktorému server prijme správu, je DATA . Nasledujú to všetky polia hlavičky e-mailovej správy a potom telo, oba tvoria iba jeden veľký blok textu (alebo dát). Ak chcete serverovi povedať, že vstup je dokončený, použije sa bodka na riadku sama o sebe (\ r \ n. \ R \ n). Takže posielam svoje posolstvo:

DATA
354 Zadajte e-mail, koniec s "." na linke sama
ID správy:
Dátum: Ne, 17 Aug 1997 18:48:15 +0200
Od: Heinz Tschabitscher
Komu: Heinz Tschabitscher
Predmet: Pre súťaž Summarize-Proust

Preč do Swan sveta!
,
250 SAA19153 Správa prijatá na doručenie

Áno, znamená to, že môžete uviesť úplne odlišné meno od názvu, do ktorého sa e-mail dostane do poľa Komu:. Môžete napríklad použiť "Potvrdený zoznam adresátov " .

Koniec

Teraz môžete odoslať toľko e-mailov, koľko si prajete zopakovať kroky od MAIL FROM: to . , Ak ste s tým skončili, môžete ukončiť server pomocou príkazu QUIT a to je práve to, čo robíme:

KONIEC
221 Zbohom

Ako to môžem urobiť?

Netriviálne riešenie je na telnet na server odchádzajúcej pošty (jeho adresa nájdete v nastaveniach účtu e-mailového klienta ) na portu 25.

Jednoduchší spôsob je použiť tento applet Java , ktorý sa pokúša napodobniť protokol SMTP a vedie vás dialógom.