Како да добијам пошта низ пост-протоколот протокол работи

A Зад сцените погледнете ја преземањето на пошта преку протоколот за пошта

Поштенскиот протокол (POP) кој се користи за добивање на пошта од оддалечен сервер е многу едноставен протокол. Ја дефинира основната функционалност на директен начин и е лесна за имплементација. Секако, лесно е да се разбере.

Ајде да дознаеме што се случува зад сцената кога вашата програма за е-пошта добива пошта во POP-сметка. Прво, треба да се поврзе со серверот.

Здраво, тоа е мене

Обично, POP серверот слуша до порта 110 за дојдовни врски. По поврзувањето од POP-клиент (вашата програма за електронска пошта), се надеваме дека ќе одговори со + OK pop.philo.org подготвено или нешто слично. + ОК покажува дека сè е - во ред. Неговиот негативен еквивалент е -ЕР , што значи дека нешто не е во ред. Можеби вашиот клиент за е-пошта ви веќе покажал еден од овие негативни одговори на серверот.

Вклучи се

Сега, кога серверот нè пречека, треба да се логираме со користење на нашето корисничко име (да претпоставиме дека корисничкото име е "вод", она што го вели серверот е испечатено со закосени букви):

+ OK, pop.philo.org е подготвен
УСЛУГИ вод

Бидејќи корисник со ова име постои, POP серверот реагира со + ОК и можеби некои глупости за кои навистина не ни е грижа. Доколку не постоел таков корисник на серверот, тоа, се разбира, би предизвикало паника со корисник -ERR непознат .

За да ја завршиме автентикацијата, ние исто така треба да ја дадеме нашата лозинка. Ова е направено со командата "помине":

+ ОК испрати ја твојата лозинка
помине ноплатот

Ако правилно ја напишеме лозинката, серверот реагира со одлична лозинка + ОК или што има на ум програмерот на POP серверот. Најважниот дел повторно е + ОК . За жал, лозинките исто така може да бидат погрешни. Серверот го забележува ова со суво- корисничко име и лозинка не се совпаѓаат (како да го користите вашето корисничко име како лозинка).

Ако сè се отиде во ред, ние сме поврзани со серверот и знаеме кои сме ние, така што сме подготвени да ја погледнеме новопристигнатата пошта.

Имаш пошта!

Откако успешно се пријавивме на нашата сметка на POP на серверот, можеби најпрво би сакале да знаеме дали воопшто постои нова пошта, а потоа можеби и колку.

Командата која се користи за добивање на овие основни статистички податоци за пошта е STAT .

Можен одговор на серверот би бил + OK 18 67042 . Во овој случај, тоа е важно што следува со знакот + OK . Веднаш следи бројот на пораките во поштенското сандаче, потоа, одделени со празно место, доаѓа големината на поштенското сандаче во октети (октет е 8 бита).

STAT
+ ОК 18 67042

Ако нема пошта, серверот одговара со + OK 0 0 . Бидејќи на серверот има 18 нови пораки, сепак можеме да ги наброиме овие со командата LIST . Како одговор, серверот ги наведува пораките во следниов формат:

ЛИСТА
+ ОК 18 пораки (67042 октети)
1 2552
2 3297
...
18 3270
.

Пораките се наведени една по една, секоја следена од нејзината големина во октети. Листата завршува со период на линија само по себе.

Командата LIST може да го земе бројот на пораката како опционален аргумент, LIST 2, на пример. Одговорот на серверот на ова барање би бил + OK 2 3297 , бројот на пораката проследен со големината на пораката. Ако се обидете да наведете порака која не постои, како што е LIST 23 , серверот не покажува имагинација и вели: -ERR нема таква порака .

Големото враќање (и бришење)

Сега, кога знаеме колку пораки се во нашата сметка и колку се големи, конечно е време да ги повратиме и да ги прочитаме.

Сега, откако ќе дознаеме дали имаме нова пошта, доаѓа вистинската работа. Пораките се извадени еден по еден со нивниот број на пораката како аргумент за командата RETR .

Серверот реагира со + OK и пораката како што е, во повеќе линии. Пораката е прекината за период на линија само по себе. На пример:

RETR 1
+ ОК 2552 октети
Бла!
.

Ако се обидеме да добиеме порака која не постои, добиваме -ERR нема таква порака .

Сега можеме да ја избришеме пораката користејќи команда DELE . (Можеме, секако, исто така да ја избришеме пораката без да ја превземеме, ако е еден од тие денови).

Добро е да се знае дека серверот нема веднаш да ја исчисти пораката. Тоа е само означено за бришење. Фактичкото бришење се случува само ако редовно ја прекинуваме врската со серверот. Така, нема да биде изгубена пошта ако врската одеднаш умира, на пример.

Одговорот на серверот на DELE командата е + ОК порака избришана :

DELE 1
+ ОК порака 1 е избришана

Ако навистина е еден од тие денови и ние ја обележавме пораката за бришење што не сакаме да ја избришеме, можно е да ги вратиме сите пораки со ресетирање на ознаките за бришење. Командата RSET го враќа поштенското сандаче во состојбата во која се наоѓаше пред да се најавите.

Серверот реагира со + OK и можеби бројот на пораки:

RSET
+ ОК 18 пораки

Откако ќе ги извадиме и избришеме сите пораки, време е да се каже збогум користејќи ја командата QUIT . Ова ќе ги исчисти пораките означени за бришење и ќе ја затворат конекцијата. Серверот реагира со + OK и проштална порака:

QUIT
+ Добро, ајде

Можно е серверот да не може да избрише порака. Потоа ќе одговори со грешка како -ЕР порака 2 не е избришана .