Kaip siunčiamas el. Paštas per pašto tarnybos protokolą

"Už scenos" ieškokite pašto siuntimo per pašto tarnybos protokolą

Pašto protokolas (POP), naudojamas laiškams iš nuotolinio serverio gauti, yra labai paprastas protokolas. Jis apibrėžia pagrindines funkcijas paprastu būdu ir yra lengvai įgyvendinamas. Žinoma, taip pat lengva suprasti.

Leiskite sužinoti, kas atsitinka už scenų, kai jūsų el. Pašto programa siunčia laiškus POP paskyroje. Pirma, jis turi prisijungti prie serverio.

Sveiki, tai aš

Paprastai POP serveris klauso įeinančių jungčių 110 prievado . Kai prisijungsite iš POP kliento (jūsų el. Pašto programos), tikimės, kad atsakysime su + OK pop.philo.org paruošta arba kažkas panašaus. + OK rodo, kad viskas yra "OK". Jo neigiamas ekvivalentas yra -ERR , o tai reiškia, kad kažkas nutiko. Gal jūsų el. Pašto klientas jau parodė jums vieną iš šių neigiamų serverio atsakymų.

Prisijungimas prie sistemos

Dabar, kai serveris pasveikino mus, turime prisijungti naudodamas mūsų vartotojo vardą (tarkime, kad naudotojo vardas yra "būrys", o tai, ką sako serveris, spausdinamas kursyvu):

+ Gerai pop.philo.org paruošta
USER būrys

Kadangi vartotojas, turintis šį pavadinimą, egzistuoja, POP serveris atsako su + OK ir galbūt kai kurie švelnūs dalykai, dėl kurių mes tikrai nesame rūpi. Jei šiame serveryje nėra tokio vartotojo, tai, žinoma, mums paniką sukeltų, kai -ERR naudotojas nežinomas .

Norint užbaigti autentiškumą, mums taip pat reikia pateikti savo slaptažodį. Tai atliekama naudojant komandą "pass":

+ Gerai nusiųskite savo slaptažodį
pereiti noplato

Jei teisingai įveskite slaptažodį, serveris reaguoja su " OK OK" slaptažodžiu arba tuo, ką turėjo POP serverio programuotojas. Svarbi dalis yra + Gerai . Deja, slaptažodžiai taip pat gali būti neteisingi. Serveris pažymi tai su dry -ERR vartotojo vardu ir slaptažodis nesutampa (tarsi naudotum savo vartotojo vardą kaip slaptažodį).

Tačiau jei viskas gerai, mes esame prijungti prie serverio ir žino, kas mes esame, todėl esame pasirengę žvilgtelėti į naujai atvykusius laiškus.

Gavote laišką!

Kai mes sėkmingai prisijungę prie mūsų POP paskyros serveryje, pirmiausia galime sužinoti, ar visai yra naujų laiškų, o gal kiek, kiek.

Šią pagrindinę pašto dėžutės statistiką išrinkta komanda yra STAT .

Galimas serverio atsakymas būtų + OK 18 67042 . Šiuo atveju svarbu tai, ką sekant " + OK" ženklą. Tiesiogiai sekant yra žinučių skaičius pašto dėžutėje, tada, atskiriant tarpą, ateina pašto dėžutės dydis oktetuose (oktetas yra 8 bitai).

STAT
+ Gerai 18 67042

Jei nėra pašto, serveris atsako + OK 0 0 . Kadangi serveryje yra 18 naujų žinučių, mes galime juos nurodyti naudodami komandą LIST . Atsakydami į serverį, sąrašai pateikiami tokiu formatu:

SĄRAŠAS
+ Gerai 18 pranešimų (67042 oktetai)
1 2552
2 3297
...
18 3270
.

Pranešimai yra išvardyti po vieną, o po jų - dydis oktetuose. Sąrašas baigiasi laikotarpiu linijoje.

LIST komanda gali priimti pranešimo numerį kaip neprivalomą argumentą, pavyzdžiui, LIST 2 . Serverio atsakymas į šį užklausą būtų + OK 2 3297 , pranešimo numeris, po kurio eina pranešimo dydis. Jei bandysite parašyti pranešimą, kurio nėra, pvz . , 23 LISTAS , serveryje nėra vaizduotės ir sakoma: -ERR tokio pranešimo nėra .

"Big Retrieve" (ir "Ištrinti")

Dabar, kai mes žinome, kiek pranešimų yra mūsų paskyroje ir kiek jų yra, pagaliau laikas juos išgauti, kad galėtume juos perskaityti.

Dabar, kai sužinojau, ar mes turime naują laišką, ateina tikras dalykas. Žinutės yra gaunamos po vieną su jų pranešimo numeriu kaip argumentu komandai RETR .

Serveris reaguoja su + OK ir pranešimu taip, kaip jis yra, keliose eilutėse. Žinutė nutraukiama eilutėje atskirai. Pavyzdžiui:

RETR 1
+ Gerai 2552 oktetai
Blah!
.

Jei bandysime gauti pranešimą, kurio nėra, mes negauname tokio pranešimo .

Dabar mes galime ištrinti pranešimą naudodami DELE komandą. (Galima, žinoma, taip pat ištrinti pranešimą, jei jis nebuvo ištrintas, jei tai yra viena iš tų dienų).

Gerai žinoti, kad serveris nedelsiant išvalys pranešimą. Tai tik pažymėta kaip išbraukta. Faktinis ištrynimas vyksta tik tada, kai mes reguliariai nutraukiame ryšį su serveriu. Todėl, jei ryšys staiga miršta, pavyzdžiui, nepavyks prarasti pašto, jis niekada nebus prarastas.

Serverio atsakymas į DELE komandą yra + Gerai ištrinta .

DELE 1
+ Gerai pranešimas 1 ištrinta

Jei tai iš tiesų yra viena iš tų dienų, ir mes pažymėjome pranešimą apie ištrynimą, kurio nenorime ištrinti, galima atkurti visus pranešimus, iš naujo nustatydami ištrynimo ženklus. Komanda RSET grąžina pašto dėžutę į būseną, kurioje ji buvo prieš mums prisijungiant.

Serveris reaguoja su + OK ir galbūt su pranešimų skaičiumi:

RSET
+ Gerai 18 pranešimų

Po to, kai gavome ir ištrynėme visus pranešimus, laikas atsipūsti naudojant komandą QUIT . Tai išvalys žinutes, pažymėtas kaip pašalintas, ir uždarykite ryšį. Serveris reaguoja su + OK ir atsisakymo pranešimu:

QUIT
+ OK, atvirkštine

Gali būti, kad serveris nepavyko ištrinti pranešimo. Tada jis atsakys su tokia klaida kaip -ERR pranešimas 2, kuris nėra ištrintas .