Com s'obté el correu a través del protocol d'oficina de correus

A Behind the Scenes Mira a Obtenir correu a través del Protocol d'oficina de correus

El protocol d'oficina de correus (POP) que s'utilitza per recuperar correu des d'un servidor remot és un protocol molt senzill. Defineix la funcionalitat bàsica d'una manera senzilla i senzilla d'implementar. Per descomptat, també és fàcil d'entendre.

Anem a descobrir què ocorre darrere de les escenes quan el programa de correu electrònic obté el correu en un compte POP. En primer lloc, necessita connectar-se al servidor.

Hola, Sóc jo

Normalment, el servidor POP escolta el port 110 per a les connexions entrants. Després de la connexió d'un client POP (el vostre programa de correu electrònic), esperem que respongui amb + OK pop.philo.org a punt o alguna cosa similar. El mètode + OK indica que tot està â € "D'acord. El seu equivalent negatiu és -ERR , el que significa que alguna cosa ha anat malament. Potser el vostre client de correu electrònic ja us ha mostrat una d'aquestes respostes negatives del servidor.

Inici de sessió

Ara que el servidor ens ha acollit, hem d'iniciar sessió amb el nostre nom d'usuari (suposem que el nom d'usuari és "peloton", el que diu el servidor s'imprimeix en cursiva):

+ OK pop.philo.org a punt
PLATÓ D'USUARIS

Com que un usuari amb aquest nom existeix, el servidor POP respon amb + D'acord i potser algunes gibberish no ens importa realment. Si no hi hagués aquest usuari en el servidor, això ens faria pànic amb -ERR usuari desconegut .

Per completar l'autenticació, també hem de donar la nostra contrasenya. Això es fa amb l'ordre "pass":

+ D'acord, envieu la vostra contrasenya
passar noplato

Si escrivim la contrasenya correctament, el servidor respon amb la contrasenya OK o bé el que tingui en compte el programador del servidor POP. La part important de nou és el + D'acord . Malauradament, les contrasenyes també poden estar equivocades. El servidor ho assenyala amb un nom d'usuari i contrasenya -ERR sec , no coincideixen (com si utilitzés el vostre nom d'usuari com a contrasenya).

Si tot va bé, però, estem connectats al servidor i sap qui som, així estem preparats per mirar el correu nouvingut.

Heu rebut correu.

Després que hàgim iniciat la sessió amb èxit al nostre compte POP al servidor, és possible que primer volem saber si hi ha correu nou i després quant és possible.

L'ordre utilitzada per recuperar aquestes estadístiques bàsiques de la bústia de correu és STAT .

Una possible resposta del servidor seria + OK 18 67042 . En aquest cas, sí importa el que segueix el signe + OK . Tot seguit es mostra el nombre de missatges a la bústia, després, separats per un espai en blanc, apareix la mida de la bústia en octets (un octet és de 8 bits).

STAT
+ Acceptar 18 67042

Si no hi ha correu, el servidor respon amb + OK 0 0 . Atès que hi ha 18 nous missatges al servidor, però, podem enumerar-los utilitzant l'ordre LIST . En resposta, el servidor llista els missatges en el següent format:

LIST
+ OK 18 missatges (67042 octets)
1 2552
2 3297
...
18 3270
.

Els missatges s'enumeren un a la vegada, cadascun seguit de la seva mida en bytes. La llista acaba amb un període en una línia per si mateix.

L'ordre LIST pot prendre el nombre d'un missatge com un argument opcional, LIST 2, per exemple. La resposta del servidor a aquesta sol·licitud seria + OK 2 3297 , el número del missatge seguit de la mida del missatge. Si proveu d'enumerar un missatge que no existeix, com LIST 23 , el servidor no mostra cap imaginació i diu: -ERR no hi ha cap missatge .

La recuperació gran (i suprimeix)

Ara que sabem quants missatges tenim al nostre compte i el gran que són, és finalment el moment de recuperar-los perquè puguem llegir-los també.

Ara, després d'esbrinar si tenim correu nou, ve el veritable. Els missatges es recuperen un per un amb el seu número de missatge com a argument a l'ordre RETR .

El servidor respon amb un + D'acord i el missatge tal com és, en diverses línies. El missatge finalitza un període en una línia per si mateix. Per exemple:

RETR 1
+ OK 2552 octets
Blah!
.

Si intentem obtenir un missatge que no existeix, obtenim -ERR aquest missatge no .

Ara podem eliminar el missatge usant l'ordre DELE . (Podem, per descomptat, també eliminar el missatge sense haver-lo recuperat si és un d'aquests dies).

És bo saber que el servidor no purgarà el missatge immediatament. Està merament marcada per a l'eliminació. La supressió real només passa si finalitzem regularment la connexió al servidor. Així, no es perdrà cap correu si la connexió de sobte mor, per exemple.

La resposta del servidor a la comanda DELE és + S'ha eliminat el missatge :

DELE 1
S'ha eliminat el missatge OK 1

Si, efectivament, és un d'aquests dies i hem marcat un missatge de supressió que no volem eliminar, és possible cancel·lar tots els missatges restant les marques d'eliminació. La comanda RSET retorna la bústia a l'estat en què estava abans que hàgim iniciat la sessió.

El servidor respon amb un OK + i possiblement el nombre de missatges:

RSET
+ OK 18 missatges

Després d'haver recuperat i eliminat tots els missatges, és hora d'acomiadar-se de l'ordre QUIT . Això purgarà els missatges marcats per suprimir i tancarà la connexió. El servidor respon amb + OK i un missatge de comiat:

QUIT
+ Acceptar adéu, adéu

És possible que el servidor no pugui eliminar un missatge. Llavors respondrà amb un error com -ERR missatge 2 no eliminat .