eské vysoké u ení technické v Praze Fakulta elektrotechnická
Bakalá ská práce
WWW poštovní klient s úložišt m 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ýpo etní technika erven 2006
ii
Pod kování Na tomto míst je mou milou povinností pod kovat panu Ing. Ivanu Halaškovi za to, že vypsal téma této bakalá ské práce. Dále bych rád pod koval ad lidí na r zných odborných fórech, kte í mi rádi poradili, pokud jsem narazil na n jaký problém. V neposlední ad bych zde rád pod koval své rodin a p átel m, 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 p iloženém seznamu.
Nemám závažný d vod 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 zm n n který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 Emailový klient je k elektronické pošt prost ednictvím WWW rozhraní. schopný všech b žných operací, základem je možnost p ijetí a odeslání emailu. Projekt je vytvo en 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 Stru ný 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áv r ………………………………………………………
18
9. Seznam literatury ………………………………………
19
ix
x
P ílohy: A. Seznam použitých zkratek ……………………………………
20
B. UML diagramy……………………………………………………
20
C. Uživatelská p íru ka ……………………………………………
20
D. Obsah p ilož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ši ováním a rostoucím objemem po íta ových sítí vyvstává pot eba komunikace mezi jednotlivými uživateli po íta
. D íve se jednalo p edevším
o elektronické vzkazy mezi n kolika uživateli, kte í st ídav pracovali na jednom po íta i. P evratným milníkem se stala elektronická pošta (electronic mail, e-mail).
K širokému rozší ení e-mailu p isp l zejména internet. P i posílání
pošty p es internet je zaru en spolehlivý p enos zprávy i v p ípad do asného výpadku cílového serveru. Komunikace mezi uživateli z celého sv ta se stala jednodušší a rychlejší. Jednoduchou podobu elektronické pošty jsme mohli pozorovat již u prvních opera ních systém
UNIX. Elektronická pošta vznikla jako
jednoduchá služba, ur ena k p enosu 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á p i azenu celosv tov unikátní adresu. Ta je jediným identifikátorem a také jedinou v cí pot ebnou 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 p edevším o b žn dostupných
tení p ijaté a odesílání elektronické pošty pomocí a používaných internetových prohlíže
generovaného WWW rozhraní. Cílovou skupinou uživatel
a dynamicky jsou menší
skupiny. P íkladem jsou firmy, kde zam stnanci mají email ze stejné domény a tudíž pot ebují 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 p edevší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 kv li složitosti zavrhl. Za cíl jsem si kladl p edevším neomezenou funk nost klienta pod r znými WWW prohlíže i (Mozilla, FireFox, Opera, IE). Rozdíly mezi prohlíže i jsou zp sobeny p edevším nedodržování standard
pro HTML
a CSS (W3C). Kompatibilita mezi prohlíže i je velmi rozsáhlá kapitola a bylo o ní napsáno již mnoho publikací. Ze zkušeností již vím, že i p es tyto problémy existuje možnost vytvo it aplikaci, která nebude omezena na funk nosti. Uživatelské prost edí by m lo být jednoduché a p ehledné.
3. Tvorba webových stránek a aplikací P edpokladem pro vznik webové databázové aplikace je možnost použití dynamického HTML. Stránky, které jsou zobrazovány prohlíže em rozd lujeme na statické a dynamické. Statické WWW jsou vytvo eny pouze pomocí HTML kódu, který je stále stejný, nem ní se. Tyto jsou dnes ur eny pouze k vyjád ení n jaké 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 zapot ebí n jakého programovacího jazyka, tzv. skriptovacího jazyka. Dnes existuje již mnoho t chto jazyk
a proto je d ležité si je
rozd lit 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 podrobn ji popíši jen technologie využité v projektu webového klienta.
3.1
HTML
HTML je HyperText Markup Language, neboli hypertextový jazyk zna ek (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íže i. Pomocí tag
je možné dokument formátovat, ovšem velkou
nevýhodou samotného HTML je velmi ne itelný zdrojový soubor. Ve zn ti tag se lehko ztrácí samotný obsah. Toto eší CSS. 3
3.2
CSS
CSS vzniklo n kdy 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 odd lí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 ovliv ovat design celého webu. Samotná tvorba styl je velmi jednoduchá. Základní pravidla používání se dají velice rychle nau it 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. Nejv tší 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 p ipojují. Vlastnosti zna ek se na tou
z tohoto vn jšího souboru.
Není mi známa žádná v tší 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 ur it
není taková, jaká by
podle normy CSS m la 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ý pozd ji p epsal 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. Odpov dí je jednoduchost, nejp íjemn jší 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á dob e optimalizovanou dobu odezvy pot ebnou 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 dopl k
ídících struktur,
operátor , druh prom nných, deklarací funkcí a deklarací t íd a objekt .
3.4
MySQL
MySQL je databázový systém st ední velikosti, má v tš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 n kterými jinými systémy spo ívá v tom, že databázovému systému MySQL chybí ur itá 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 kv li jeho dobré podpo e v PHP.
5
4. Elektronická pošta Elektronická pošta je základní službou po íta ových sítí. Její použití je jednoduché, z pohledu uživatele obecn
sta í pouze zadat adresu
p íjemce a napsat text zprávy. P estože jde o službu, která m že být v sítích r zného typu implementována dosti odlišným zp sobem, její celkový efekt je pro uživatele prakticky vždy stejný. Jak jsem se zmínil výše, v minulosti byl p enos email jednodušší než dnes. Zpráva byla velmi malá a výhradn postupem
o n co
textová. S
asu, a s rostoucí oblibou elektronické pošty pozd ji došlo
k jejímu vylepšení. Nov
byla zavedena podpora i jiných jazyk , resp.
znakových sad, byl ujednocen zp sob p ibalování p íloh, a posléze se rozší il i repertoár formát , které m že mít samotný obsah zprávy. P vodní auto i Internetové elektronické pošty po ítaly s tím, že obsah zpráv budou p edstavovat
isté anglické (tzv. ASCII) znaky, bez
jakéhokoliv formátování (t eba tu ného písma apod.), a tomu pak uzp sobily i konkrétní p enosové mechanismy, které se v rámci Internetu starají o p enos jednotlivých zpráv. To znamenalo nap íklad to, že když n kdo napsal zprávu tvo enou jinými znaky (nap íklad v eštin diakritikou), tato zpráva se nemusela p enést korektn .
Obrázek 1 - Elektronická pošta
6
s plnou
Nejd íve se za alo
ešit posílání netextové p ílohy. To, co ke
korektnímu p enosu p íloh a r zných znakových sad je zapot ebí, je jejich p evedení do takového tvaru, jaký zaru en "projde" skrz p enosové kanály internetové pošty. Problém vy ešil až standard jménem MIME (Multipurpose Internet Mail Extensions), který dnes již v tš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 doru ena na jiný po íta , skládá se tato adresa ze dvou ástí: sm rové a lokální.
ást sm rová udává, na který po íta
má být
elektronická zpráva doru ena a lokální ást pak ur uje, co se má na tomto po íta i se zprávou ud lat.
4.2
Protokol SMTP
SMTP (Simple Mail Transfer Protokol) - popsán v RFC 2821, aktualizuje a dopl uje informace z RFC 821. Za cíl si tento protokol klade p enos
zprávy
odesílatele
k p íjemci,
nezávislý
na
p enosovém
subsystému. D ležitou vlastností STMP je schopnost doru it email i p es n kolik sítí, tzv. SMTP mail relaying. P i p enosu naváže klient spojení se serverem a má za úkol poslat zprávu na jeden i více server , nebo oznámit chybu. P edm tem SMTP transakce je tzv. Zpráva (Mail Object), která se skládá z obálky a obsahu. Pro pot eby p enosu je elektronická zpráva (sestavená podle doporu ení 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 p vodce 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 p enesena pouze jednou, ale v míst svého p íjmu pak doru ena více p íjemc m. Další informace, které b žného uživatele mohou zajímat (nap . as a datum odeslání nebo p ijetí zprávy, p edm t 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
nep etržit
p ipojen k internetu. Protokol
POP3 má pro své ú ely vyhrazen TCP port 110. Komunikace probíhá v st ídajících se vým nách mezi klientem a serverem.
4.4
Protokol IMAP
Protokol POP3 [RFC1939] byl navržen tak, aby umož oval pouze operace pot ebné pro p epravu elektronické pošty z poštovního serveru ke klientovi a p i tom byl co možná nejjednodušší. Obsahuje tedy pouze minimální
množinu
operací
(p íkaz )
pot ebný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 doporu ení [RFC2060].
8
5. Analýza a návrh ešení P i výb ru programovacího jazyka a vývojových nástroj jsem zvážil využití již zmín ných jazyk , ale p edevším své zkušenosti, protože jsem již v minulosti vyvíjel webové aplikace. Jazyk PHP jsem zvolil z d vodu 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
Stru ný popis návrhu
Základní funkcí WWW poštovního klienta bude možnost stažení doru ených email
ze vzdáleného serveru. Po stažení by se pošta m la
uložit do databáze, aby m l uživatel možnost i pozd jšího prohlédnutí emailu. Ke stažení email budou sloužit funkce skriptovacího jazyka PHP. Další základní a d ležitou funkcí je možnost odeslání emailu, klient by m l umožnit odeslání emailu s p ílohou, více p íjemc m
a možnost odeslání
kopie. D ležitou sou ástí je p ihlašovací systém, ve kterém uživatel zadá p ihlašovací jméno a osobní heslo a spustí se jeho osobní klient. Systém by m l být schopen reagovat na v tšinu požadavk
uživatele, zvyklého
pracovat s jinými poštovními klienty. Ovládání klienta by m lo být p edevší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 p edepsaný email, bude jej moci uložit do rozepsané pošty. Další d ležitou a dnes již b žnou v cí je filtrace nevyžádané pošty (SPAM). Systém se pokusí zjistit, zda-li doru ený 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 r zných programovacích jazycích. Proto jsem se v této ásti zam il p edevším na projekty založené na stejném programovacím jazyku, tedy PHP. Jedním
z nejpoužívan jších
je
SquirrelMail,
webové
rozhraní
k emailu vytvo ené v PHP4. Tento program je i jeden z nejkvalitn jších a poskytuje opravdu velmi dobré možnosti týkající se email . Je vid t, ž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 doporu ován. Poté, co jsem tento produkt vyzkoušel mohu ho jen doporu it. Pro up esn ní – 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 vytvo ení prost edí 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í p ijaté i odeslané emaily. Databáze MySQL slouží jako úložišt
pošty, nastavení a informací
o uživatelích. P i realizaci projektu jsem vycházel z klasické 3-vrstvé architektury viz obrázek níže.
Obrázek 2 - Architektura Jako vývojové prost edí používám editor PSPad. Program podporuje p es 30 r zných prost edí (PHP, HTML, XML, ASP, SQL, Python, ...), v kterých výrazn uleh í práci.
11
6.1
Návrh databáze
P i vytvá ení webové aplikace, která na ítá nebo ukládá n jaká data, je jedním z nejd ležit jších prvních krok správný návrh datových struktur, ve kterých budou tato data uchována. V první ad ukládání dat zásadn
musím doporu it pro
databáze. P i špatném návrhu datové struktury se
d íve i pozd ji dostaneme do stavu, kdy se vlastní rozši ování aplikace stává natolik složitým, že je mnohdy lepší za ít úpln od za átku. V prvé
ad
je nezbytné ur it strukturu informací, které bude
databáze obsahovat. Je mnoho zp sob , jak vytvo it funk ní model databáze. Jednou z možností je vytvo it E-R diagram.
6.2
Základní kameny
Hlavními funkcemi považuji odeslání a p íjem emailu. Toto vše již je vy ešené v PHP a protože bych tyto funkce nazval jako základními kameny klienta, rozeberu je detailn ji.
6.2.1 Odeslání emailu Pro odeslání jednoduchých textových zpráv používáme vestav nou 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 doru en.
tvrtý parametr je nepovinný.
mail() automaticky odešle email vzkaz specifikovaný v zprava p íjemci specifikovanému v komu. P idáním árky mezi adresami v komu m žete specifikovat více p íjemc . 12
Popis parametr : komu
adresy p íjemc
predmet
p edm t emailu
zprava
t lo zprávy
dalsi_hlavicky
tento et zec je p idán na konec hlavi ky emailu, ádky hlavi ky se odd lují pomocí za ádkování „\r\n“
Možnosti dalších hlavi ek email , zápis hlavi ek je následující: Poznámka: kurzívou je psán zdrojový kód tu n 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"; ur uje d lež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 Komplikovan jší bylo poslat email s p ílohou. Nejd íve musí být obsah p ílohy na ten do prom nné, tato prom nná je poté zakódovaná pomocí MIME-kódování BASE64, které vytvo í et zec vhodný pro odeslání
13
emailem. Po zakódování je vzniklý et zec rozd len na menší pomocí funkce Chunk_Split(). Rozd lení
et zce je nutné provést proto, aby
vyhovoval standardu RFC 2045. Samotná zakódovaná p íloha se umístí p ímo do t la 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 dob e podporován, ímž se vytvá í velmi vhodné programovací prost edí pro vytvá ení emailových prost edk . Pomocí více funkcí PHP pro IMAP, které jsou popsány níže, lze snadno p istupovat k doru eným zprávám na vzdáleném serveru. Pokud se chceme p ihlásit na vzdálený emailový ú et, musíme otev ít spojení funkcí imap_open. int imap_open(string schranka, string jmeno, string heslo, int priznaky) Uvedený kód vrací p i úsp šném provedení datový proud IMAP, jinak vrací false. Tuto funkci lze také použít pro otev ení datových proud
14
k server m POP3 a NNTP. Pokud se p ipojujeme k server m 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
-
p i uzav ení 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 p ijat. To nám zaru í funkce imap_sort(). Poté zjistit po et nov p ijatých zpráv pomocí funkce count(). Toto je pot ebné k tomu, abychom mohli v cyklu projít pole zpráv ve schránce a postupn jej ukládat do databáze, tabulky p ijatých zpráv. Pro zjišt ní veškerých informací o zpráv
nám poslouží funkce
imap_header(), která je konkrétn jší než imap_headers(). Funkce vrací objekt s celým záhlavím, rozd leným do jednotlivých prvk záhlaví. string imap_header (int imap_datovzproud, int, cislozpravy, int priznaky) P esný popis a syntaxi n kterých funkcí zde neuvádím. Snažím se uvád t jen funkce d ležité k pochopení principu dané operace.
15
6.3
Ostatní funkce
Další funkce jsou ur eny spíše pro p íjemn jší 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 vytvo it databázi spam , nebo filtrovat n které adresy. Nastavení podpisu - nap íklad ve firm je b žné, že si zam stnanci cht jí na poštovním klientu nastavit podpis, který se bude p ikládat ke každé odeslané pošt . Klient dokáže zm nit i design. Na výb r jsou uživateli n které 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 p iloženém CD, v adresá i /text/.
17
8. Záv r 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á. P i realizaci byl kladen d raz na funk nost klienta pod r znými WWW prohlíže i. Myslím, že výsledkem práce je ucelený program, sloužící pro jednoduchou správu poštovní schránky. Tím jsou spln ny 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 ur it není možné jen v rozsahu bakalá ské práce. Proto bych si dovolil nastínit další pokra ování práce. Ur it
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 d vodu vzr stajícího objemu spam uživatel .
18
ve schránkách
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ádn te kaskádové styly Zoner Press, 2004
[4]
Eric Meyer: Eric Meyer o CSS – pokra ujeme s kaskádovými styly profesionáln Zoner Press, 2005
[5]
Pavol Mikle: Referen ní p íru ka XCSS Zoner Press, 2004
[6]
Ji í Kosek: Co nového p ináší 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
- Cascading Style Sheets ( kaskádové styly)
PHP
- Hypertext Preprocessor ( programovací jazyk)
HTML
- HyperText Markup Language ( zna kovací jazyk )
W3C
- World Wide Web Consortium (standarty na internetu)
IMAP
- Internet Message Access Protocol (protokol pro p ístup k emailovým schránkám)
POP3
- Post Office Protocol version 3 (protokol pro p ístup k emailovým schránkám)
SMTP
- Simple Mail Transfer Protocol (p enos zpráv mezi stanicemi)
SPAM
- je nevyžádané masov ší ené sd lení ší ené internetem
20
B. Uživatelská p íru ka Tato ást je samostatn umíst na na p iloženém CD v adresá i /text.
C. UML diagramy UML diagramy jsem zpracoval již jako práci v p edm tu X36BPJ, výsledky mé práce z tohoto semestru jsou publikovány jako WWW prezentace. Tato prezentace je p iložena na CD.
D. Obsah p iloženého CD D1. adresá /text Tento adresá obsahuje dokumentaci, a výsledky testování bakalá ské práce.
uživatelskou
D2. adresá /src Obsahem jsou zdrojové kódy aplikace i webové prezentace.
21
p íru ku