Kurz5 - Kapitola1

17. června 2007 v 11:20 | http://www.sweb.cz/kurz_evt/ |  Programování pro WinCE

7. Program ClearMail

7.1 Cíl a obsah kurzu

K vytvoření tohoto kurzu, který jste právě začali číst, mě inspirovaly dvě věci. První z nich byla představa, že některý z kurzů by měl zamířit do oblasti přenosu dat na Internetu. Konkrétní cíl pak pomohlo zvolit stále přibývající množství spamu, které se objevuje v E-mailových schránkách.
I když existují jistě lepší programy a možnosti, zvolil jsem jako cíl tohoto kurzu vytvoření malého programu, který s pomocí přenesení co nejmenšího množství dat umožní prohlédnout a vyčistit obsah vaší schránky. Program by měl umožnit:
  • připojit se k serveru, kde je kontrolovaná schránka,
  • podívat se, jakou poštu jsme obdrželi (bez toho abychom ji stáhli),
  • vybrat si to, co je určeno k likvidaci přímo na serveru,
  • vybrané E-maily zrušit.
Při tvorbě programu budeme však postupovat trochu netradičně. Pro práci s poštou je ve Windows CE připraveno tzv. Windows CE Mail API. Pokud si v Helpu prohlédnete nápovědu k tomuto tématu, zjistíte asi, že práce s poštou je v podstatě velmi jednoduchá. Stačí zprávy jenom ukládat nebo vybírat z příslušné složky (Inbox, Outbox...) a systém se již postará o zbytek.
Abychom se seznámili s komunikací v síti Internet trochu blíže nepoužijeme toto rozhraní a komunikaci si zajistíme trochu pracnějším způsobem. Jak vlastně komunikace na Internetu probíhá?
Podrobný popis by přesáhl rozsah všeho, co jsem zde zatím zveřejnil. Pokud vás zajímají podrobnosti, musíte začít hledat v síti a číst, číst, číst a tím učit se, učit se, učit se (ale to už tady někdo říkal :-). Zde se pokusím jenom velmi stručně nastínit základní princip.
Aby se počítače ve "Velké Síti" domluvily, je nutné dodržovat jistá pravidla. Sada protokolů, kterými spolu komunikují, se nazývá TCP/IP protokoly. Pokrývají jednotlivé vrstvy od fyzické až k nejvyšším vrstvám. My se jimi asi nemusíme zabývat. Stačí vědět, že musíme pouze zajistit připojení ke správnému serveru přes správný port. Přenášená data v Internetu jsou různého charakteru a servery, které data poskytují očekávají komunikaci obvykle na standardním portu.
obr. 77 Propojení klienta s poštovním serverem
Historickým vývojem se vyhradily určité porty pro jednotlivé internetové služby a tím i protokoly používané při komunikaci s nimi. Nejběžnější porty a služby jsou vybrané v následující tabulce:
PortProtokolPoužití
20 a 21FTPPřenos souborů
23TELNETKomunikace
25SMTPOdesílání E-mailů
80HTTPWebové stránky
110POP3Přístup k poštovní schránce
143IMAPNovější poštovní komunikace
Protože v našem programu budeme chtít komunikovat se serverem, který obsluhuje naši poštovní schránku, budeme využívat protokol POP3 na portu 110. POP3 protokol je nejběžnější způsob pro vybírání dat z poštovního serveru, i když třeba IMAP je dokonalejší. Pokud váš poskytovatel nenabízí přístup přes POP3 rozhraní, máte bohužel smůlu :-(.
K tomu, abychom mohli pracovat se svou schránkou, potřebujeme splnit několik podmínek:
  1. mít u nějakého poskytovatele (např. seznam) svou schránku,
  2. poskytovatel E-mailu musí umožňovat přístup přes POP3,
  3. musíme znát jméno poštovního POP3 serveru (např. pop3.seznam.cz),
  4. adresu E-mailu a heslo pro přístup k němu si snad pamatujeme :-),
  5. měli bychom vědět, jak se serverem komunikovat,
  6. program si už napíšeme sami!
Jak probíhá komunikace s poštovním serverem? Není to příliš složité. Nejprve pomocí tzv. Windows Socket navážeme přes Internet na daném portu (v našem případě 110) spojení s poštovním serverem. Socket si z hlediska programátora můžeme představit jako "rouru" spojující dva počítače. My můžeme do "roury" něco zavolat a z "roury" se může ozvat odpověď.
Při komunikaci s POP3 serverem se nám server po navázání spojení představí. My pak musíme identifikovat sebe (příkaz USER) a heslo pro přístup ke schránce (příkaz PASS). Je-li vše v pořádku, můžeme pak v tomto spojení provádět některé příkazy pro ovládání schránky. Např. to jsou STAT - stav schránky, RETR - vybrání zprávy ze schránky, DELE - zrušení určené zprávy atd. Po ukončení práce bychom spojení měli ukončit příkazem QUIT.
Mohli bychom vytvořit program na základě použití Windows Socket. Tak hluboko však zacházet nebudeme, protože pak by byl program již rozsáhlý pro potřeby kurzu. Stačí prohledat Internet a můžete objevit třídy zapouzdřující některé komunikační protokoly používané na Internetu. Třída pro práci s POP3 se dá naštěstí objevit na stránkách, jejichž autorem je P.J.Naughter. Tím si ušetříme řadu příkazů při ošetřování a nastavování komunikace. I tak bude zdrojový kód dostatečně obsáhlý pro účely kurzu.
Při vývoji použijeme standardní vzhled Windows programu (podobně jako v kurzu 1 a 2). Nebudeme tedy vytvářet dialogově založenou aplikaci (jako v kurzu 3 a 4). Jelikož se budeme dále držet knihovny MFC, bude kostra programu založena na architektuře dokument/pohled. Protože však nebudeme zpracovávat a ukládat data - ale pouze je zobrazovat - je část dokumentu zbytečná. Využijeme pouze třídu pohledu, třída dokumentu zůstane v tomto programu nevyužita. Snad někdy příště ji využijeme v jiném kurzu.
Dalším prvkem, který si procvičíme, bude vytváření dialogu na různý způsob. Zkusíme si vytvořit modální i nemodální dialog s odvozenou i standardní třídou. A zbývající detaily nás překvapí teprve cestou...

Co bychom si měli z této lekce zapamatovat?

  • Komunikace v prostředí Internetu probíhá různými protokoly na různých portech.
 

Buď první, kdo ohodnotí tento článek.

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.