Cum funcționează preluarea e-mailului prin intermediul protocolului Post Office

A din spatele scenei Uită-te la preluarea Mail prin Protocolul Post Office

Protocolul Post Office (POP) folosit pentru a prelua mesajele de pe un server de la distanță este un protocol foarte simplu. Acesta definește funcționalitatea de bază într-o manieră simplă și este ușor de implementat. Desigur, este, de asemenea, ușor de înțeles.

Hai să aflăm ce se întâmplă în spatele scenei când programul dvs. de e-mail primește e-mailuri într-un cont POP. În primul rând, trebuie să vă conectați la server.

Bună, eu sunt

De obicei, serverul POP ascultă portul 110 pentru conexiunile primite. La conectarea de la un client POP (programul tău de e-mail), acesta va răspunde, sperăm, cu + OK pop.philo.org gata sau ceva similar. + OK indică faptul că totul este OK. Echivalentul său negativ este -ERR , ceea ce înseamnă că ceva a mers prost. Poate că clientul tău de e-mail ți-a arătat deja unul dintre aceste răspunsuri negative la server.

Conectare

Acum că serverul ne-a salutat, trebuie să ne logam folosind numele de utilizator (să presupunem că numele de utilizator este "pluton", ceea ce serverul spune că este tipărit cu caractere cursive):

+ OK pop.philo.org gata
USER pluton

Dat fiind faptul că un utilizator cu acest nume nu există, serverul POP răspunde cu + OK și poate niște bâlbâi pe care nu ne pasă. Dacă nu există un astfel de utilizator la server, ar fi, bineînțeles, ne face să fim panică cu utilizatorul -ERR necunoscut .

Pentru a face autentificarea completă trebuie să ne dăm și parola. Aceasta se face cu comanda "pass":

+ OK trimiteți parola
trece noplato

Dacă tastăm corect parola, serverul răspunde cu o parolă de parolă + OK sau oricare ar fi fost programatorul serverului POP. Partea importantă este din nou + OK . Din păcate, parolele pot fi, de asemenea, greșite. Serverul notează acest lucru cu un uscat nume de utilizator și o parolă de tip ERR care nu se potrivesc (ca și cum ați folosi numele de utilizator ca parolă).

Dacă totul a decurs bine, totuși, suntem conectați la server și știm cine suntem, astfel că suntem gata să aruncăm o privire asupra mesajului nou primit.

Ai primit poștă!

După ce ne-am conectat cu succes la contul nostru POP de la server, este posibil ca mai întâi să știm dacă există o nouă corespondență și, eventual, cât de mult.

Comanda utilizată pentru a prelua aceste statistici de bază pentru cutia poștală este STAT .

Un posibil răspuns la server ar fi + OK 18 67042 . În acest caz, contează ce urmează după semnul + OK . Imediat după ce este numărul de mesaje din căsuța poștală, apoi, separate de un spațiu alb, dimensiunea căsuței poștale este în octeți (un octet este de 8 biți).

STAT
+ OK 18 67042

Dacă nu există nici o corespondență, serverul răspunde cu + OK 0 0 . Din moment ce există 18 mesaje noi pe server, cu toate acestea, putem lista aceste folosind comanda LIST . Ca răspuns, serverul listează mesajele în următorul format:

LISTĂ
+ OK 18 mesaje (67042 octeți)
1 2552
2 3297
...
18 3270
.

Mesajele sunt listate câte unul, fiecare urmat de dimensiunea sa în octeți. Lista se termină cu o perioadă pe o linie de la sine.

Comanda LIST poate lua numărul unui mesaj ca argument opțional, de exemplu LIST 2 . Răspunsul serverului la această solicitare ar fi + OK 2 3297 , numărul mesajului urmat de dimensiunea mesajului. Dacă încercați să listați un mesaj care nu există, cum ar fi LIST 23 , serverul nu prezintă imaginație și spune: -ERR nu există un astfel de mesaj .

Big Retrieve (și șterge)

Acum că știm câte mesaje sunt în contul nostru și cât de mari sunt, este timpul să le recuperăm, astfel încât să le putem citi.

Acum, după ce a aflat dacă avem poștă nouă, vine adevăratul lucru. Mesajele sunt preluate unul câte unul, cu numărul mesajelor lor ca argument pentru comanda RETR .

Serverul răspunde cu un + OK și mesajul așa cum este, pe mai multe rânduri. Mesajul este terminat de o perioadă pe o linie de la sine. De exemplu:

RETR 1
+ OK 2552 octeți
Blah!
.

Dacă încercăm să obținem un mesaj care nu există, nu avem niciun astfel de mesaj .

Acum putem șterge mesajul folosind comanda DELE . (Putem, desigur, să ștergem și mesajul fără a fi preluat-o dacă este una din acele zile).

Este bine să știți că serverul nu va elimina imediat mesajul. Este doar marcat pentru ștergere. Ștergerea efectivă se întâmplă numai dacă încheiem cu regularitate conexiunea la server. Deci, nici o corespondență nu va fi pierdută dacă conexiunea va muri brusc, de exemplu.

Răspunsul serverului la comanda DELE este șters + mesajul OK :

DELE 1
Mesajul + OK 1 a fost șters

Dacă într-adevăr este una dintre acele zile și am marcat un mesaj de ștergere că nu dorim să fim șterși, este posibil să ștergem toate mesajele resetând semnele de ștergere. Comanda RSET returnează căsuța poștală în starea în care era înăuntru înainte de conectare .

Serverul răspunde cu un + OK și, eventual, cu numărul de mesaje:

RSET
+ OK 18 mesaje

După ce am recuperat și șters toate mesajele, este timpul să-i luăm la revedere folosind comanda QUIT . Aceasta va elimina mesajele marcate pentru ștergere și va închide conexiunea. Serverul răspunde cu + OK și un mesaj de rămas bun:

PĂRĂSI
+ OK, revedere

Este posibil ca serverul să nu poată șterge un mesaj. Apoi va răspunde cu o eroare ca mesajul -ERR 2 care nu a fost șters .