úterý 29. října 2002

Komunikace s POP3 serverem

V dnešním článku si ukážeme jak probíhá komunikace klienta s POP3 serverem.

Protokol POP3 slouží k přijímání elektronické pošty. Poštovní server je většinou připraven na portu 110(POP3), kde čeká na připojení klienta. K ukázce použijeme opět program TELNET.

OPEN -server- 110

Odpověď serveru bude "+OK " a identifikace mail serveru. Teď server čeká, že se uživatel autorizuje. K tomu je potřeba zaslat jméno a heslo. To provedeme pomocí příkazů USER -jmeno- a PASS -heslo-.

USER devil
+OK Password required for devil
PASS devil
+OK Mailbox locked and ready

Pokud bude mail server reagovat takto, je vše v pořádku a uživatel je přihlášen. V tento okamžik se k POP3 účtu nemůže přihlásit žádný jiný uživatel! Server ale také může odpovědět "-ERR Invalid password" - to znamená nějakou chybu (v tomto případě chybné heslo).
Jako další krok je velmi důležité zjistit zda jsou na serveru nějaké emaily. To provedeme buď příkazem STAT nebo LIST. STAT vypíše počet emailů a jejich celkovou velikost, zatímco LIST vypíše na každý řádek jedno ID mailu a jeho velikost.

STAT
+OK 2 8471
LIST
+OK
1 7065
2 1406
.

Vidíme, že máme dva emaily s celkovou velikostí cca. 8kB. Po příkazu LIST je vidět, že první má velikost cca. 7kB a druhý asi 1kB. Pro získání obsahu emailu použijeme příkaz RETR xxx, kde místo xxx doplníme číslo emailu.

retr 3
+OK 565 octets
Received: from [127.0.0.1] by devil
(ArGoSoft Mail Server Plus for WinNT/2000, Version 1.8 (1.8.1.7)); Sun, 20 Oct
2002 13:41:34 +0200
Message-ID: <000601c2782d$a43ba930$0100007f@devil>
From: "Devil - Local"
To:
Subject: test
Date: Sun, 20 Oct 2002 13:41:34 +0200
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-2"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

test

.

Je vidět, že příkaz RETR stáhne celý email včetně všech hlaviček. Teď je již jen na nás, jak tato data zpracujeme...
Pokud stáhneme email ze serveru, stáhneme jeho kopii! To znamená, že na serveru zůstává. Pokud ho chceme odstranit, použijeme pŕíkaz DELE xxx, kde místo xxx opět doplníme číslo emailu.

DELE 3
+OK Message number 3 marked
LIST
+OK
1 7065
2 1406
3 565
.

Je vidět, že zpráva nebyla smazána! To ale není zas tak pravda, byla označena. Smazána bude až po odhlášení od POP3 serveru příkazem QUIT. Pokud se neodhlásíte příkazem QUIT, ale odhásí Vás server kvůli dlouhé nečinosti, zpráva NEBUDE smazána!

Na závěr ještě jedna poznámka: hesla se přenáší nešifrovaně a v logu serveru jsou čitelná! Pochopitelně je možné na serveru nastavit maskování těchto hesel, ale silně pochybuji, že se tak děje. Nicméně pokud poštu stahujete přes Outlook nebo jiný mail program, odesílá hesla také jako čistý text. Nicméne to, že administrátor vidí vaše heslo není zas tak velký problém - on ho stejně zná. Může se podívat do nastavení vašeho účtu, kde ho vidí také. Jediné nebezpečí hrozý při cestě od klienta k mail serveru, kde může být heslo teoreticky odchyceno a zneužitu, avšak tento problé řeší zabezpečené připojení.

Na závěr zde pro Vás mám opět ukázku z LOGu mail serveru:

20.10.2002 13:52:47 - Requested POP3 connection from 127.0.0.1
20.10.2002 13:52:47 - ( 60) +OK ArGoSoft Mail Server Plus for WinNT/2000, Version 1.8 (1.8.1.7)
20.10.2002 13:52:49 - ( 60) user devil
20.10.2002 13:52:49 - ( 60) +OK Password required for devil
20.10.2002 13:52:51 - ( 60) pass devil
20.10.2002 13:52:51 - ( 60) +OK Mailbox locked and ready
20.10.2002 13:52:54 - ( 60) stat
20.10.2002 13:52:54 - ( 60) +OK 2 8471
20.10.2002 13:52:56 - ( 60) list
20.10.2002 13:52:56 - ( 60) +OK
20.10.2002 13:52:56 - ( 60) .
20.10.2002 13:52:59 - ( 60) retr 1
20.10.2002 13:52:59 - ( 60) +OK 7065 octets
20.10.2002 13:52:59 - ( 60) .
20.10.2002 13:53:02 - ( 60) retr 2
20.10.2002 13:53:02 - ( 60) +OK 1406 octets
20.10.2002 13:53:02 - ( 60) .
20.10.2002 13:53:05 - ( 60) dele 1
20.10.2002 13:53:05 - ( 60) +OK Message number 1 marked
20.10.2002 13:53:07 - ( 60) dele 2
20.10.2002 13:53:07 - ( 60) +OK Message number 2 marked
20.10.2002 13:53:08 - ( 60) quit
20.10.2002 13:53:08 - ( 60) +OK Aba he
20.10.2002 13:53:09 - POP3 connection with 127.0.0.1 ended. ID=60

Žádné komentáře: