eské vysoké uení technické v Praze Fakulta elektrotechnická Bakaláská práce WWW poštovní klient s úložištm v MySQL databázi Jií Švadlenka Vedoucí práce: Ing. Ivan Halaška Studijní program: Elektrotechnika a informatika strukturovaný bakaláský Obor: Informatika a výpoetní technika erven 2006
ii
Podkování Na tomto míst je mou milou povinností podkovat panu Ing. Ivanu Halaškovi za to, že vypsal téma této bakaláské práce. Dále bych rád podkoval ad lidí na rzných odborných fórech, kteí mi rádi poradili, pokud jsem narazil na njaký problém. V neposlední ad bych zde rád podkoval své rodin a pátelm, kteí m podporovali za dosavadní dobu mého studia. iii
iv
Prohlášení Prohlašuji, že jsem svou bakaláskou práci vypracoval samostatn a použil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené v piloženém seznamu. Nemám závažný dvod proti užití tohoto školního díla ve smyslu 60 Zákona.121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o zmn nkterých zákon (autorský zákon). V Praze dne.. podpis v
vi
Abstract As is shown in the title of project, it s theme is access to e-mail by WWW interface. E-mail client is supposed to be able to do every common operations. The principle is possibility of acceptation and dispatchment of e-mail. The project is made by object-oriented programming language PHP. Abstrakt Jak už samotný název napovídá, bakaláská práce se zabývá pístupem k elektronické pošt prostednictvím WWW rozhraní. Emailový klient je schopný všech bžných operací, základem je možnost pijetí a odeslání emailu. Projekt je vytvoen pomocí objektov orientovaného programovacího jazyka PHP. vii
viii
Obsah Seznam obrázk.. xiii 1. Úvod 1 2. Popis problému, specifikace cíle... 2 3. Tvorba webových stránek a aplikací. 3 3.1 HTML. 3 3.2 CSS 4 3.3 PHP 4 3.4 MySQL.. 5 4. Elektronická pošta 6 4.1 Elektronická adresa 7 4.2 Protokol SMTP 7 4.3 Protokol POP3 8 4.4 Protokol IMAP. 8 5. Analýza a návrh ešení... 9 5.1 Struný popis návrhu 9 5.2 Existující implementace 10 6. Realizace 11 6.1 Návrh databáze.. 12 6.2 Základní kameny 12 6.2.1 Odeslání emailu.. 12 6.2.2 Píjem emailu ze serveru.. 14 6.3 Ostatní funkce. 16 7. Testování 17 8. Závr 18 9. Seznam literatury 19 ix
x
Pílohy: A. Seznam použitých zkratek 20 B. UML diagramy 20 C. Uživatelská píruka 20 D. Obsah piloženého CD... 21 xi
xii
Seznam obrázk Obrázek 1 - Elektronická pošta.. 6 Obrázek 2 Architektura. 11 xiii
xiv
1. Úvod Rozšiováním a rostoucím objemem poítaových sítí vyvstává poteba komunikace mezi jednotlivými uživateli poíta. Díve se jednalo pedevším o elektronické vzkazy mezi nkolika uživateli, kteí stídav pracovali na jednom poítai. Pevratným milníkem se stala elektronická pošta (electronic mail, e-mail). K širokému rozšíení e-mailu pispl zejména internet. Pi posílání pošty pes internet je zaruen spolehlivý penos zprávy i v pípad doasného výpadku cílového serveru. Komunikace mezi uživateli z celého svta se stala jednodušší a rychlejší. Jednoduchou podobu elektronické pošty jsme mohli pozorovat již u prvních operaních systém UNIX. Elektronická pošta vznikla jako jednoduchá služba, urena k penosu malých a hlavn textových zpráv, napsaných v anglickém jazyku, tudíž jen s využitím kódování ASCII. Dnes by jsme si na tuto podobu již tžko zvykali, jelikož jsme zvyklí zasílat emaily napsaných v naší mateštin, tedy s háky a árkami. Bžn posíláme v píloze aplikace, video soubory a jiné datové soubory. Kouzlem elektronické pošty je to, že její používání je velmi jednoduché. Uživatel, který používá elektronickou poštu má piazenu celosvtov unikátní adresu. Ta je jediným identifikátorem a také jedinou vcí potebnou k zaslání emailu. 1
2. Popis problému, specifikace cíle Tématem bakaláské práce je WWW poštovní klient, což znamená, že jde pedevším o tení pijaté a odesílání elektronické pošty pomocí bžn dostupných a používaných internetových prohlíže a dynamicky generovaného WWW rozhraní. Cílovou skupinou uživatel jsou menší skupiny. Píkladem jsou firmy, kde zamstnanci mají email ze stejné domény a tudíž potebují kvalitní a jednoduchý nástroj ke správ elektronické pošty. Pro implementaci projektu jsem zvolil dnes hojn využívané technologie a metody v oblasti webdesignu a programování internetových stránek. Jedná se pedevším o HTML (HyperText Markup Language) ve spojení s CSS (Cascading Style Sheets) na stran klienta a skriptovacího jazyka PHP (Personal Home Page) na stran serveru. Jako úložišt dat nám poslouží databáze MySQL (Structured Query Language). Tyto metody jsem zvolil s ohledem na jejich možnosti a cíle. Dále se mi nabízela i možnost využít objektov orientovaný jazyk Java a jednu jeho moderní internetovou technologii JavaServlet, kterou jsem kvli složitosti zavrhl. Za cíl jsem si kladl pedevším neomezenou funknost klienta pod rznými WWW prohlížei (Mozilla, FireFox, Opera, IE). Rozdíly mezi prohlížei jsou zpsobeny pedevším nedodržování standard pro HTML a CSS (W3C). Kompatibilita mezi prohlížei je velmi rozsáhlá kapitola a bylo o ní napsáno již mnoho publikací. Ze zkušeností již vím, že i pes tyto problémy existuje možnost vytvoit aplikaci, která nebude omezena na funknosti. Uživatelské prostedí by mlo být jednoduché a pehledné.
3. Tvorba webových stránek a aplikací Pedpokladem pro vznik webové databázové aplikace je možnost použití dynamického HTML. Stránky, které jsou zobrazovány prohlížeem rozdlujeme na statické a dynamické. Statické WWW jsou vytvoeny pouze pomocí HTML kódu, který je stále stejný, nemní se. Tyto jsou dnes ureny pouze k vyjádení njaké informace. Jestliže se však zobrazované stránky mají lišit podle akcí, které uživatel na stránce provede, potom se jedná o stránky dynamické, dynamické HTML. Práv pro tvorbu takových to stránek je zapotebí njakého programovacího jazyka, tzv. skriptovacího jazyka. Dnes existuje již mnoho tchto jazyk a proto je dležité si je rozdlit do kategorií: Statické WWW stránky HTML Dynamické WWW stránky skriptovací jazyk JavaScript skriptovací jazyky pracující s databází PHP skripty CGI skripty (jazyky Perl, C, jiné) ASP skripty (jazyky na platform.net) Dále zde podrobnji popíši jen technologie využité v projektu webového klienta. 3.1 HTML HTML je HyperText Markup Language, neboli hypertextový jazyk znaek (tag). Soubor typu HTML, je WWW dokument skládající se z množiny prvk, které definují, jak bude kód vypadat ve webovém prohlížei. Pomocí tag je možné dokument formátovat, ovšem velkou nevýhodou samotného HTML je velmi neitelný zdrojový soubor. Ve znti tag se lehko ztrácí samotný obsah. Toto eší CSS. 3
3.2 CSS CSS vzniklo nkdy kolem roku 1996. Cascading Style Sheets, esky "kaskádové styly", jsou kolekcí metod pro grafickou úpravu webových stránek. Díky CSS tedy snadno zredukujeme množství formátovacích prvk v samotném HTML a tím oddlíme obsah dokumentu od formy. Formou WWW dokument se rozumí formátování typu úprava barev, velikost písma, pozadí atd., prost vše co nepatí do obsahu. S CSS styly mžete pomocí jednoho souboru ovlivovat design celého webu. Samotná tvorba styl je velmi jednoduchá. Základní pravidla používání se dají velice rychle nauit a z vlastní zkušenosti mohu potvrdit, že se stanou velmi oblíbenými. Styly se aplikují hlavn pomocí tíd a identifikátor. Ty umožují tvorbu CSS stylu jediným atributem a vy tedy nemusíte opakovat stejný kód vícekrát. Nejvtší význam kaskádových styl je v tom, že jsou uloženy v samostatném souboru s píponou.css a k vlastnímu dokumentu se pipojují. Vlastnosti znaek se natou z tohoto vnjšího souboru. Není mi známa žádná vtší nevýhoda kaskádových styl, ale problém je v jejich implementaci v prohlížeích. Tento problém se pomalými kroky zmenšuje, ale podpora napíklad v IE urit není taková, jaká by podle normy CSS mla být. 3.3 PHP Zkratka PHP znamená Pofessional Home Pages, profesionální domovské stránky, a jde o skriptovací jazyk zabudovaný na stran serveru. Vznik jazyka se datuje do roku 1994, kdy Rasmus Lerdorf napsal program v Perlu, který pozdji pepsal do Céka. PHP má tedy jisté znaky C/C++. PHP je jedním z nejvíce rozšíených a oblíbených skriptovacích jazyk. Je ideálním pro tvorbu webových aplikací. 4
Pro práv PHP? Existuje mnoho jiných možností jako ASP, Perl, Java, Python atd. Odpovdí je jednoduchost, nejpíjemnjší práce s databázemi a nezávislost na platform a fakt, že PHP je Open source. PHP bylo navrženo pro práci na webu. Skriptovací jádro PHP má dobe optimalizovanou dobu odezvy potebnou ve webových aplikacích. Také mže být pímo souástí webového serveru, ímž zvyšuje propustnost. Jazyk PHP se skládá z obvyklých doplk ídících struktur, operátor, druh promnných, deklarací funkcí a deklarací tíd a objekt. 3.4 MySQL MySQL je databázový systém stední velikosti, má vtšinu funkcí velkého databázového systému a dokáže spravovat i velmi velké objemy dat. Svojí konstrukcí se hodí ke správ databází, které jsou typické v mnoha webových databázových aplikacích. Rozdíl mezi MySQL a nkterými jinými systémy spoívá v tom, že databázovému systému MySQL chybí uritá podpora dotazování a má také omezené možnosti paralelního zpracování. Omezení databázového systému MySQL mají obvykle velmi malé dopady na vývoj webových aplikací. MySQL jsem zvolil práv kvli jeho dobré podpoe v PHP. 5
4. Elektronická pošta Elektronická pošta je základní službou poítaových sítí. Její použití je jednoduché, z pohledu uživatele obecn staí pouze zadat adresu píjemce a napsat text zprávy. Pestože jde o službu, která mže být v sítích rzného typu implementována dosti odlišným zpsobem, její celkový efekt je pro uživatele prakticky vždy stejný. Jak jsem se zmínil výše, v minulosti byl penos email o nco jednodušší než dnes. Zpráva byla velmi malá a výhradn textová. S postupem asu, a s rostoucí oblibou elektronické pošty pozdji došlo k jejímu vylepšení. Nov byla zavedena podpora i jiných jazyk, resp. znakových sad, byl ujednocen zpsob pibalování píloh, a posléze se rozšíil i repertoár formát, které mže mít samotný obsah zprávy. Pvodní autoi Internetové elektronické pošty poítaly s tím, že obsah zpráv budou pedstavovat isté anglické (tzv. ASCII) znaky, bez jakéhokoliv formátování (teba tuného písma apod.), a tomu pak uzpsobily i konkrétní penosové mechanismy, které se v rámci Internetu starají o penos jednotlivých zpráv. To znamenalo napíklad to, že když nkdo napsal zprávu tvoenou jinými znaky (napíklad v eštin s plnou diakritikou), tato zpráva se nemusela penést korektn. Obrázek 1 - Elektronická pošta 6
Nejdíve se zaalo ešit posílání netextové pílohy. To, co ke korektnímu penosu píloh a rzných znakových sad je zapotebí, je jejich pevedení do takového tvaru, jaký zaruen "projde" skrz penosové kanály internetové pošty. Problém vyešil až standard jménem MIME (Multipurpose Internet Mail Extensions), který dnes již vtšina výrobc zabudovává do svých produkt pro elektronickou poštu. 4.1 Elektronická adresa Každá elektronická zpráva musí obsahovat adresu píjemce. Jestliže má být zpráva doruena na jiný poíta, skládá se tato adresa ze dvou ástí: smrové a lokální. ást smrová udává, na který poíta má být elektronická zpráva doruena a lokální ást pak uruje, co se má na tomto poítai se zprávou udlat. 4.2 Protokol SMTP SMTP (Simple Mail Transfer Protokol) - popsán v RFC 2821, aktualizuje a dopluje informace z RFC 821. Za cíl si tento protokol klade penos zprávy odesílatele k píjemci, nezávislý na penosovém subsystému. Dležitou vlastností STMP je schopnost doruit email i pes nkolik sítí, tzv. SMTP mail relaying. Pi penosu naváže klient spojení se serverem a má za úkol poslat zprávu na jeden i více server, nebo oznámit chybu. Pedmtem SMTP transakce je tzv. Zpráva (Mail Object), která se skládá z obálky a obsahu. Pro poteby penosu je elektronická zpráva (sestavená podle doporuení v [RFC822]) vložena do jakési pomyslné obálky. Aby tato obálka mohla cestovat mezi odesilatelem a píjemcem, musí na ní vždy být nadepsány alespo dva základní údaje. Prvním z nich je elektronická adresa pvodce zprávy (originator) a druhým pak adresa píjemce zprávy 7
(recipient). Je možné na obálku nadepsat i více než jednoho píjemce zprávy. Zpráva pak muže být penesena pouze jednou, ale v míst svého píjmu pak doruena více píjemcm. Další informace, které bžného uživatele mohou zajímat (nap. as a datum odeslání nebo pijetí zprávy, pedmt zprávy), jsou souástí samotné elektronické zprávy. 4.3 Protokol POP3 POP3 protokol byl standardizován v roce 1996 v RFC 1939. Jeho úelem je jednoduché a rychlé stahování pošty ze vzdáleného úložišt na poíta, který nemusí být nutn nepetržit pipojen k internetu. Protokol POP3 má pro své úely vyhrazen TCP port 110. Komunikace probíhá v stídajících se výmnách mezi klientem a serverem. 4.4 Protokol IMAP Protokol POP3 [RFC1939] byl navržen tak, aby umožoval pouze operace potebné pro pepravu elektronické pošty z poštovního serveru ke klientovi a pi tom byl co možná nejjednodušší. Obsahuje tedy pouze minimální množinu operací (píkaz) potebných pro manipulaci s elektronickými zprávami na poštovním serveru. Se zvyšujícími se nároky pro vzdálenou manipulaci s elektronickými zprávami byl vyvinut mnohem rozsáhlejší protokol IMAP4 (Internet Message Access Protocol verze 4), který je detailn popsán v doporuení [RFC2060]. 8
5. Analýza a návrh ešení Pi výbru programovacího jazyka a vývojových nástroj jsem zvážil využití již zmínných jazyk, ale pedevším své zkušenosti, protože jsem již v minulosti vyvíjel webové aplikace. Jazyk PHP jsem zvolil z dvodu snadného spojení s databází, v mém pípad MySQL. Dalším významným plusem jsou PHP funkce umožující stažení elektronické pošty z SMTP serveru a možnost odeslání emailu. 5.1 Struný popis návrhu Základní funkcí WWW poštovního klienta bude možnost stažení doruených email ze vzdáleného serveru. Po stažení by se pošta mla uložit do databáze, aby ml uživatel možnost i pozdjšího prohlédnutí emailu. Ke stažení email budou sloužit funkce skriptovacího jazyka PHP. Další základní a dležitou funkcí je možnost odeslání emailu, klient by ml umožnit odeslání emailu s pílohou, více píjemcm a možnost odeslání kopie. Dležitou souástí je pihlašovací systém, ve kterém uživatel zadá pihlašovací jméno a osobní heslo a spustí se jeho osobní klient. Systém by ml být schopen reagovat na vtšinu požadavk uživatele, zvyklého pracovat s jinými poštovními klienty. Ovládání klienta by mlo být pedevším jednoduché, srozumitelné a intuitivní. Další funkcí poskytované klientem je možnost íst a kontrolovat již odeslanou poštu, jelikož bude také uložena v databázi. Pokud bude mít uživatel pedepsaný email, bude jej moci uložit do rozepsané pošty. Další dležitou a dnes již bžnou vcí je filtrace nevyžádané pošty (SPAM). Systém se pokusí zjistit, zda-li doruený email není nevyžádaným. Problém nevyžádané pošty je velmi složitý a komplikovaný, proto jsem se 9
jím v tomto projektu nezabýval natolik, aby byl systém schopen odhalit každý SPAM. 5.2 Existující implementace Poštovních klient je celá ada. Zdarma dostupné i placené, programované v rzných programovacích jazycích. Proto jsem se v této ásti zamil pedevším na projekty založené na stejném programovacím jazyku, tedy PHP. Jedním z nejpoužívanjších je SquirrelMail, webové rozhraní k emailu vytvoené v PHP4. Tento program je i jeden z nejkvalitnjších a poskytuje opravdu velmi dobré možnosti týkající se email. Je vidt, že na vývoji tohoto klienta se pracuje již delší dobu a systém se verzí od verze zlepšuje. SocketMail je dalším kvalitním rozhraním. Má opravdu dobré reference a mnohými uživateli je doporuován. Poté, co jsem tento produkt vyzkoušel mohu ho jen doporuit. Pro upesnní vyzkoušel jsem verzi SocketMailLite. Dolda Webmail je jednodušší PHP poštovní klient. Nemá prakticky žádný webdesign a minimální možnosti nastavení, ale myslím že i tento program si našel uživatele, pro které je ideální. 10
6. Realizace Celý projekt bude naprogramován pomocí technologií HTML + CSS, pro vytvoení prostedí klienta. Jazyk PHP, bžící na stran serveru, pro realizaci ovládacích funkcí. PHP nám umožní ovládání poštovní schránky na vzdáleném serveru i spojení s databází, do které se ukládají pijaté i odeslané emaily. Databáze MySQL slouží jako úložišt pošty, nastavení a informací o uživatelích. Pi realizaci projektu jsem vycházel z klasické 3-vrstvé architektury viz obrázek níže. Obrázek 2 - Architektura Jako vývojové prostedí používám editor PSPad. Program podporuje pes 30 rzných prostedí (PHP, HTML, XML, ASP, SQL, Python,...), v kterých výrazn ulehí práci. 11
6.1 Návrh databáze Pi vytváení webové aplikace, která naítá nebo ukládá njaká data, je jedním z nejdležitjších prvních krok správný návrh datových struktur, ve kterých budou tato data uchována. V první ad musím doporuit pro ukládání dat zásadn databáze. Pi špatném návrhu datové struktury se díve i pozdji dostaneme do stavu, kdy se vlastní rozšiování aplikace stává natolik složitým, že je mnohdy lepší zaít úpln od zaátku. V prvé ad je nezbytné urit strukturu informací, které bude databáze obsahovat. Je mnoho zpsob, jak vytvoit funkní model databáze. Jednou z možností je vytvoit E-R diagram. 6.2 Základní kameny Hlavními funkcemi považuji odeslání a píjem emailu. Toto vše již je vyešené v PHP a protože bych tyto funkce nazval jako základními kameny klienta, rozeberu je detailnji. 6.2.1 Odeslání emailu Pro odeslání jednoduchých textových zpráv používáme vestavnou funkci mail(). bool mail ( string komu, string predmet, string zprava [, string dalsi_hlavicky] ) Funkce vrací true, pokud byl email odeslán na místní poštovní systém. To znamená, že byl email doruen. tvrtý parametr je nepovinný. mail() automaticky odešle email vzkaz specifikovaný v zprava píjemci specifikovanému v komu. Pidáním árky mezi adresami v komu mžete specifikovat více píjemc. 12
Popis parametr: komu predmet zprava dalsi_hlavicky adresy píjemc pedmt emailu tlo zprávy tento etzec je pidán na konec hlaviky emailu, ádky hlaviky se oddlují pomocí zaádkování \r\n Možnosti dalších hlaviek email, zápis hlaviek je následující: Poznámka: kurzívou je psán zdrojový kód tun je zapsáno co se uvádí $dalsi_hlavicky.= "From: jméno odesílatele < email odesílatele >\n"; specifikuje informace o odesílateli $ dalsi_hlavicky.= "X-Sender: < email odesílatele >\n"; fyzický odesílatel $ dalsi_hlavicky.= "X-Mailer: klient\n"; název emailového klienta $ dalsi_hlavicky.= "X-Priority: priorita\n"; uruje dležitost emailu (2 = Urgentni, 3 = Normalni, 4 = nízká) $ dalsi_hlavicky.= "Return-Path: < email odesílatele >\n"; návratová adresa pro chyby $ dalsi_hlavicky.= "Content-Type: text/html; charset=iso-8859-1\n"; pokud je email odeslán jako HTML kód, musíme nastavit kódování $ dalsi_hlavicky.= "cc: kopie\n"; adresa píjemce kopie emailu $ dalsi_hlavicky.= "bcc: skrytá kopie \n"; adresa píjemce skryté kopie emailu Komplikovanjší bylo poslat email s pílohou. Nejdíve musí být obsah pílohy naten do promnné, tato promnná je poté zakódovaná pomocí MIME-kódování BASE64, které vytvoí etzec vhodný pro odeslání 13
emailem. Po zakódování je vzniklý etzec rozdlen na menší pomocí funkce Chunk_Split(). Rozdlení etzce je nutné provést proto, aby vyhovoval standardu RFC 2045. Samotná zakódovaná píloha se umístí pímo do tla zprávy (string zprava). Taková zpráva poté vypadá: $zprava.= " text emailu \n"; $ zprava.= "MIME_BOUNDRY_main_message\n"; informace, že zpráva obsahuje pílohu $zprava.= "Content-Transfer-Encoding: kódování\n"; kódování textu $zprava.= píloha; zakódovaná píloha 6.2.2 Píjem emailu ze serveru Standardní protokol IMAP je PHP dobe podporován, ímž se vytváí velmi vhodné programovací prostedí pro vytváení emailových prostedk. Pomocí více funkcí PHP pro IMAP, které jsou popsány níže, lze snadno pistupovat k dorueným zprávám na vzdáleném serveru. Pokud se chceme pihlásit na vzdálený emailový úet, musíme otevít spojení funkcí imap_open. priznaky) int imap_open(string schranka, string jmeno, string heslo, int Uvedený kód vrací pi úspšném provedení datový proud IMAP, jinak vrací false. Tuto funkci lze také použít pro otevení datových proud 14
k serverm POP3 a NNTP. Pokud se pipojujeme k serverm POP3 bžícím na portu 110, použijeme $open = imap_open ({pop3.seznam.cz:110/pop3}inbox, uzivatel, heslo ); Server IMAP bžn využívá port 143 a server NNTP port 119. Dále mžeme nastavit píznaky s následujícími hodnotami: OP_READONLY - otevít schránku pouze pro tení CL_EXPUNGE - pi uzavení schránky se schránka vyprázdní Jakmile je navázáno IMAP spojení, mže se použít funkce imap_headers(), která vrací seznam zpráv ve schránce. array imap_headers (int imap_datovyproud); Naším dalším cílem je setídit seznam zpráv podle toho kdy byl email pijat. To nám zaruí funkce imap_sort(). Poté zjistit poet nov pijatých zpráv pomocí funkce count(). Toto je potebné k tomu, abychom mohli v cyklu projít pole zpráv ve schránce a postupn jej ukládat do databáze, tabulky pijatých zpráv. Pro zjištní veškerých informací o zpráv nám poslouží funkce imap_header(), která je konkrétnjší než imap_headers(). Funkce vrací objekt s celým záhlavím, rozdleným do jednotlivých prvk záhlaví. priznaky) string imap_header (int imap_datovzproud, int, cislozpravy, int Pesný popis a syntaxi nkterých funkcí zde neuvádím. Snažím se uvádt jen funkce dležité k pochopení principu dané operace. 15
6.3 Ostatní funkce Další funkce jsou ureny spíše pro píjemnjší práci uživatele s klientem. Jednou z takových funkcí je nastaveni úrovn ochrany proti nevyžádané pošt. Program se sice nezabývá analýzou obsahu email, aby odhalil nevyžádanou poštu. Uživatel ovšem mže vytvoit databázi spam, nebo filtrovat nkteré adresy. Nastavení podpisu - napíklad ve firm je bžné, že si zamstnanci chtjí na poštovním klientu nastavit podpis, který se bude pikládat ke každé odeslané pošt. Klient dokáže zmnit i design. Na výbr jsou uživateli nkteré skiny, po vybrání skinu se stránka nahraje znovu, jen s jiným externím souborem s kaskádovými styly. 16
7. Testování Vzhledem k rozsahu testování jsou výsledky testování prezentovány na piloženém CD, v adresái /text/. 17
8. Závr Cílem bakaláské práce bylo seznámit se s existujícími webovými klienty a jejich architekturou a poté navrhnout a realizovat vlastní systém. Zásadním rozhodnutím bylo využití skriptovacího jazyka PHP. Tento jazyk je ideálním ešením pro projekty takovéhoto typu. Nespornou výhodou je snadná komunikace jazyka PHP s databází MySQL. Díky funkcím umožujícím odeslání a píjem pošty byla práce velmi píjemná. Pi realizaci byl kladen draz na funknost klienta pod rznými WWW prohlížei. Myslím, že výsledkem práce je ucelený program, sloužící pro jednoduchou správu poštovní schránky. Tím jsou splnny cíle, které jsem si stanovil na zaátku práce. Práce na webové aplikaci byla píjemná a pomohla mi se seznámit s dalšími možnosti programování v oblasti webových technologií. Jazyk PHP jsem si velmi oblíbil, jak už pro jeho použitelnost tak velikou podporu mezi programátory. Vyvinout kvalitní webový systém umožující práci s e-maily urit není možné jen v rozsahu bakaláské práce. Proto bych si dovolil nastínit další pokraování práce. Urit bych zkvalitnil práci s pílohami, pro vetší pohodlí uživatele. Dále bych vylepšil detekci nevyžádané pošty, toto beru jako zásadní z dvodu vzrstajícího objemu spam ve schránkách uživatel. 18
9. Seznam literatury a použitých zdroj [1] Kolektiv autor: Programujeme PHP profesionáln Computer Press a.s., 2004 [2] Hugh E. Williams, David Lane: Programujeme webové aplikace pomocí PHP a MySQL Computer Press, 2002 [3] Eric Meyer: Eric Meyer o CSS ovládnte kaskádové styly Zoner Press, 2004 [4] Eric Meyer: Eric Meyer o CSS pokraujeme s kaskádovými styly profesionáln Zoner Press, 2005 [5] Pavol Mikle: Referenní píruka XCSS Zoner Press, 2004 [6] Jií Kosek: Co nového pináší PHP4 - publikace v pdf [7] PHP - online manuál. http://www.php.net [8] Root.cz hlavní stránka http://www.root.cz [9] Interval.cz hlavní stránka http://interval.cz [10] Jií Kosek manuál k PHP http://www.kosek.cz [10] MySQL - online manuál. http://www.mysql.com/ 19
A. Seznam použitých zkratek IE - Internet Explorer ASP - Active Server Page ( Dynamické webové stránky ) CSS PHP - Cascading Style Sheets ( kaskádové styly) - Hypertext Preprocessor ( programovací jazyk) HTML - HyperText Markup Language ( znakovací jazyk ) W3C IMAP POP3 SMTP SPAM - World Wide Web Consortium (standarty na internetu) - Internet Message Access Protocol (protokol pro pístup k emailovým schránkám) - Post Office Protocol version 3 (protokol pro pístup k emailovým schránkám) - Simple Mail Transfer Protocol (penos zpráv mezi stanicemi) - je nevyžádané masov šíené sdlení šíené internetem 20
B. Uživatelská píruka Tato ást je samostatn umístna na piloženém CD v adresái /text. C. UML diagramy UML diagramy jsem zpracoval již jako práci v pedmtu X36BPJ, výsledky mé práce z tohoto semestru jsou publikovány jako WWW prezentace. Tato prezentace je piložena na CD. D. Obsah piloženého CD D1. adresá /text Tento adresá obsahuje dokumentaci, uživatelskou píruku a výsledky testování bakaláské práce. D2. adresá /src Obsahem jsou zdrojové kódy aplikace i webové prezentace. 21