Kako funkcioniše prikupljanje pošte preko poštanskog protokola

A Iza scena pogledajte preuzimanje pošte preko poštanskog protokola

Protokol Post Office (POP) koji se koristi za preuzimanje pošte sa udaljenog servera je vrlo jednostavan protokol. Ona definira osnovnu funkcionalnost na direktan način i lako se implementira. Naravno, lako je razumjeti.

Hajde da saznamo šta se dešava iza scene kada e-poštni program preuzima poštu na POP račun. Prvo, potrebno je da se poveže sa serverom.

Zdravo, to je ja

Obično POP server poslužuje portu 110 za dolazne veze. Nakon veze od POP klijenta (vaš program e-pošte), nadamo se da će odgovoriti sa + OK pop.philo.org ili nešto slično. + OK pokazuje da je sve u redu. Njegov negativni ekvivalent je -ERR , što znači da je nešto pogrešno. Možda vam je email klijent već pokazao jedan od ovih negativnih odgovora na serveru.

Logiranje uključeno

Sada kada nas je server pozdravio, moramo se prijaviti koristeći naše korisničko ime (pretpostavimo da je korisničko ime "vod", ono što server kaže je štampano kurzivom):

+ OK pop.philo.org spreman
USER vod

Budući da korisnik sa ovim imenom postoji, POP server odgovara sa + OK i možda ima nekih grobova za koje nam stvarno nije stalo. Da li na tom serveru ne postoji takav korisnik, to bi nas, naravno, usmjerilo u paniku sa -ERR nepoznatim korisnikom .

Da bi autentikacija bila završena, takođe moramo dati našu lozinku. Ovo se radi sa komandom "pass":

+ OK pošaljite svoju lozinku
proći noplat

Ako ispravno unesemo lozinku, server odgovara sa velikom lozinkom + OK ili šta god je programator POP servisa imao na umu. Važan deo ponovo je + OK . Nažalost, lozinke takođe mogu biti pogrešne. Server zabilježi ovo sa suho -korisničko korisničko ime i lozinka se ne podudaraju (kao da biste koristili svoje korisničko ime kao svoju lozinku).

Ako je sve prošlo dobro, mi smo povezani sa serverom i znamo ko smo mi, tako da smo spremni da pogledamo novoprijavljenu poštu.

Dobili ste poštu!

Nakon što smo se uspešno prijavili na naš POP nalog na serveru, možda ćemo prvo želeti da znamo da li uopšte postoji nova pošta, a zatim i možda koliko.

Komanda koja se koristi za preuzimanje ovih osnovnih statistika poštanskog sandučeta je STAT .

Mogući odgovor servera bi bio + OK 18 67042 . U ovom slučaju, važno je šta sledi znak + OK . Odmah sledi broj poruka u poštanskom sandučetu, a zatim, odvojen prostim prostorom, dolazi do veličine poštanskog sandučeta u oktetima (oktet je 8 bitova).

STAT
+ OK 18 67042

Ako nema pošte, server odgovara sa + OK 0 0 . Međutim, na serveru je 18 novih poruka, međutim, možemo ih navesti pomoću komande LIST . Kao odgovor, server navodi poruke u sledećem formatu:

LIST
+ OK 18 poruka (67042 okteta)
1 2552
2 3297
...
18 3270
.

Poruke su navedene pojedinačno, a svaki od njih sledi njihova veličina u oktetima. Lista se završava sa perioda na liniji samo po sebi.

Komanda LIST može uzeti broj poruke kao opcionalni argument, LIST 2, na primjer. Odgovor servera na ovaj zahtev bio bi + OK 2 3297 , broj poruke koji prati veličinu poruke. Ako pokušate da navedete poruku koja ne postoji, kao što je LIST 23 , server ne pokazuje maštu i kaže: -ERR nema takvu poruku .

Veliko preuzimanje (i brisanje)

Sada kada znamo koliko je poruka u našem računu i koliko su velike, konačno je vrijeme da ih preuzmemo, tako da ih možemo i pročitati.

Sada, nakon što saznamo da li imamo novu poštu, dolazi stvarna stvar. Poruke se uzimaju pojedinačno sa njihovim brojem poruke kao argumentom za naredbu RETR .

Server odgovara sa + OK i poruka kako je, u više redova. Poruka se prekida sa perioda na liniji samo po sebi. Na primjer:

RETR 1
+ OK 2552 okteta
Bla!
.

Ako pokušamo da dobijemo poruku koja ne postoji, dobićemo -ERR takvu poruku .

Sada možemo da obrišemo poruku pomoću DELE naredbe. (Možemo, naravno, takođe obrisati poruku bez izvlačenja ako je to jedan od tih dana).

Dobro je znati da server neće odmah čistiti poruku. Samo je označen za brisanje. Stvarno brisanje se dešava samo ako redovno prekidamo vezu sa serverom. Dakle, pošta nikada neće biti izgubljena ako veza, na primer, odjednom umre.

Odgovor servera na DELE naredbu je + OK izbrisana poruka :

DELE 1
+ OK poruka 1 izbrisana

Ako je zaista jedan od tih dana i označili smo poruku za brisanje koju ne želimo izbrisati, moguće je obnavljanje svih poruka poništenjem oznaka brisanja. Komanda RSET vraća poštansko sanduče u stanje u kojem je bilo prije nego što se prijavite.

Server odgovara sa + OK i verovatno broj poruka:

RSET
+ OK 18 poruka

Nakon što smo preuzeli i izbrisali sve poruke, vreme je da se pozdravimo koristeći komandu QUIT . Ovo će pročistiti poruke označene za brisanje i zatvoriti vezu. Server odgovara sa + OK i oproštajnom porukom:

QUIT
+ OK, zdravo, zdravo

Moguće je da server nije mogao da obriši poruku. Onda će odgovoriti sa greškom kao što je -ERR poruka 2 nije obrisana .