1
Počítačové sítěInternetový systém elektronické pošty
• Výměna elektronických zpráv mezi uživateli – ukládání do schránek (mailboxes)
• Princip „store and forward“, využití MX záznamů v DNS• Zpráva – v původní verzi pouze text, v rozšířené verzi
(specifikace MIME – Multipurpose Internet Mail Extensions) může mít zpráva libovolný obsah
• Formát elektronické adresy: [email protected]éna – user musí mít v mailserveru zřízen mailbox– user může mít na mailserveru alias – mailserver musí být dostupný na well-known portu 25
pro poštovní službu– mailserver pro doménu má MX záznam v zónovém
DNS souboru
2
Počítačové sítěInternetový systém elektronické pošty
• Protokoly e-mail systému:– SMTP (Simple Mail Transfer Protocol) – RFC 2821
(původní RFC 821) základní protokol pro výměnu poštovních zpráv
– MIME – RFC 2045-2049 - protokol pro strukturování těla zprávy
– POP3 (Post Office Protocol) – RFC 1939 – přístup do mailboxu ze vzdáleného klienta
– IMAP4 (Internet Message Access Protocol) – RFC3501-3503 - přístup do mailboxu ze vzdáleného klienta
3
Počítačové sítěInternetový systém elektronické pošty
• Logické moduly e-mail systému:– MTA (Mail Tranfer Agent) – zajistí přenos zprávy –
podporuje protokol SMTP – komunikace mezi MTA na principu klient - server (MTA lokální, MTA „relay“
– MDA (Mail Delivery Agent) – zajistí uložení zprávy do mailboxu uživatele
– MRA (Mail Retrieval Agent) – zajistí klientovi přístup do uživatelova mailboxu – podporuje protokoly POP3 nebo IMAP4 (nebo oba)
– MUA (Mail User Agent) – vytváří rozhraní pro přístup uživatele k poštovním službám, komunikuje s MTA a MRA – podporuje SMTP, POP3, IMAP4
4
Počítačové sítěInternetový systém elektronické pošty
MTA
MTA
MDAMRA
mailboxes
SMTP
POP/IMAP
LAN BMRA
MTAMUA
LAN A
LAN C
5
Lokální MTA
Relay MTA
Relay MTA
MUA
Uživatel
Lokální MTA
Lokální MTALokální
MTA
Lokální MTA
Lokální MTA
MUA
Uživatel mailboxes
Organizace A
Organizace B
SMTP přes Internet
Systém SMTP relay
Počítač odesílatele
Počítač příjemce
6
well-known
SMTP
Počítačové sítěInternetový systém elektronické pošty
• Protokol SMTP – využívá transportní službu TCP, well-known port 25, komunikace klient server
• Protokol SMTP je implementován v logických modulech MTA
• Příklady MTA: sendmail, qmail, postfix…..
MTA MTA
Klient Server25 20200
alokovaný
7
Počítačové sítěInternetový systém elektronické pošty
• Průběh relace MTA podle protokolu SMTP:– Klient iniciuje navázání TCP spojení na port 25– Probíhá obousměrný dialog (příkazové sekvence specifikované v
protokolu SMTP), při kterém klient předá (i opakovaně) serveru data (e-mail zprávu/zprávy)
– Dialog je ukončen uzavíracím příkazem, TCP spojení se uzavře
• IP datagram se zprávou protokolu SMTP
IP headerProtocol=06
TCP headerPort=25
PDU SMTP (request / reply)
8
Počítačové sítěInternetový systém elektronické pošty
• SMTP zprávy: klient server request (příkaz) odpověď(reply)
• Příkazy SMTP - 4 znakový alfabetický řetězec (se sémantikou) + parametry– HELO<SP><doménové_jméno><CRLF> - identifikace
klienta– MAIL <SP>FROM<zpáteční_adresa><CRLF> -
identifikace odesílatele– RCPT <SP>TO<adresa_příjemce><CRLF> - identifikace
příjemce– DATA<CRLF> - žádost o příjem dat (poštovní zásilky
odesílatele)
9
Počítačové sítěInternetový systém elektronické pošty
• Příkazy SMTP (2)– RSET<CRLF> - ukončení transakce– VRFY<SP><adresa_příjemce><CRLF> - ověření
platnosti adresy bez odeslání dat– QUIT<CRFL> - uzavřeni SMTP dialogu – uzavření
TCP spojení• Příkazová sekvence pro předání dat:
1. HELO – navázání spojení, představení MTA odesílatele
2. MAIL – adresa odesílatele
3. RCPT – adresa příjemce
4. DATA – požadavek na přijetí „zásilky“
5. (QUIT) – v případě, že není k předání další „zásilka“
obálka
10
Počítačové sítěInternetový systém elektronické pošty
• Princip komunikace příkaz –odpověď - hand shake• Odpovědi SMTP:
kód odpovědi XYZ (3cifry)<SP>text např. „500 Command unrecognized“
• X – specifikuje typ odpovědi
1 . . Pozitivní předběžná odpověď
2 . . Pozitivní konečná odpověď
3 . . Pozitivní průběžná odpověď
4 . . Přechodná negativní odpověď
5 . . Trvalá negativní odpověď
11
Počítačové sítěInternetový systém elektronické pošty
• Y – specifikuje obsah odpovědi. 0 . Chybná syntaxe příkazu
. 1 . Odpověď informativního charakteru
. 2 . Odpověď nesoucí informaci o stavu spojení
. 3 . Zatím nespecifikováno
. 4 . Zatím nespecifikováno
. 5 . Odpověď indikující stav transakce na příjemcově straně
• Z – kontextové rozlišení odpovědi ( . . X )
12
• 500 Chyba syntaxe, příkaz nepoznán• 501 Syntaktická chyba v parametrech příkazu• 502 Příkaz není implementován• 211 Status systému• 220 <domain> Service připraven• 221 <domain> Service uzavřel přenosový kanál• 421 <domain> Service není k disposici• 250 Požadovaná služba vyplněna• 450 Požadovaná služba nevyplněna, není k disposici
mailbox (mailbox busy)• 550 Požadovaná služba nevyplněna, není k disposici
mailbox (mailbox nenalezen)• 451 Požadovaná služba násilně přerušena, chyba ve
zpracování• 452 Požadovaná služba nevyplněna, nedostatečná
kapacita paměti systému• 354 Začátek přenosu dat , ukončeno znakem „.“• 554 Transakce selhala
13
Počítačové sítěInternetový systém elektronické pošty
• Formát zpráv elektronické pošty – RFC 822 (pro protokoly SMTP, POP3, IMAP4)
obálka záhlaví tělo zprávy
generuje MUA, aktualizuje MTA
generuje MTA:adresa odesílatele (MAIL FROM)adresa příjemce (RCPT TO)
obsah zprávy
14
Počítačové sítěInternetový systém elektronické pošty
• Záhlaví zprávy – klíčové slovo + text (specifikováno v RFC 2822 ) – příklady klíčových slov:– Received: (seznam MTA)– Message-ID: (identifikátor zprávy)– CC: (příjemce kopie zprávy)– From: (odesílatel)– Date: (datum a čas odeslání)– Reply-to: (zpáteční adresa)– To: (adresát)– Subject: (předmět zprávy)
15
Počítačové sítěInternetový systém elektronické pošty
• Protokol MIME – specifikace libovolného těla zprávy
• Záhlaví MIME zahrnuje „hlavičky“:– MIME-Version – specifikuje, že zpráva obsahuje
hlavičku dle RFC2045 – RFC2049– Content-Type (1) - jednoduchý typ/podtyp dat v
těle zprávy – skládá se z jedné části (text, video, audio, binární program…..). Příklady:
• Image/gif• Video/mpeg• Application/PostScript
obálka záhlaví tělo zprávyzáhlavíMIME
16
Počítačové sítěInternetový systém elektronické pošty
• Content-Type (2) – kompozitní typ/podtyp - skládá se z více částí – multipart – zpráva obsahuje více dílčích zpráv – oddělovač
je parametr boundary• Mixed – zpráva s přílohami• Parallel – všechny části zprávy se interpretují současně
(obraz + zvuk)• Alternative – stejný obsah v alternativním formátu• Signed – s připojeným elektronickým podpisem• Encrypted – šifra zprávy
– message – dlouhá zpráva rozdělena na více segmentů• rfc822 – vnořené zprávy s vlastním záhlavím• Partial – zpráva je dělena na segmenty
Podtypy
Typy
17
Počítačové sítěInternetový systém elektronické pošty
• Záhlaví MIME:– Content-Transfer-Endoding – specifikace
použitého kódování pro přenos (značná část přenosových zařízení dokáže zpracovat pouze data ve formátu ASCI. Příklady: quoted-printable, base64, 7bit, 8bit, binary….
– Content-ID – identifikační číslo zprávy (volitelná hlavička)
– Content-Description – textový popis obsahu zprávy
– Content- Disposition – specifikuje, zda jsou data určena k automatickému zobrazení nebo k uložení na lokální disk
18
Počítačové sítěInternetový systém elektronické pošty
PC MTA
----------------
--------
MRA
MDA
MTA
SMTPSMTP
POP3
Internet
Fronty dosud neodeslaných zpráv
Mailserver MTA
MTA
MTA
MRA
19
Počítačové sítěInternetový systém elektronické pošty – POP3
• Post Office Protocol - POP3 – podporuje– Autorizovaný přístup do mailboxu na vzdáleném
mailserveru– Výpis informace o stavu mailboxu– Přenos kopie obsahu zprávy uložené v mailboxu– Označení zprávy pro výmaz event. zrušení označení
• POP3 je stavový automat – přechod do jednotlivých stavů probíhá v příkazových sekvencích. – Stavy:
• Autorizace• Transakce• Aktualizace
20
Počítačové sítěInternetový systém elektronické pošty
• POP3 používá TCP transport, well-known port 110, komunikace klient – server (příkaz – odpověď)
• Implementace POP3– Server - na straně mail serveru programem typu
daemon („naslouchá“ na portu 110)
– Klient – v uživatelském poštovním aplikačním programu (pine, OutlookExpress, ….)
– Příkaz - alfabetický řetězec (se sémantikou) <SP>data
– Odpověď
• Pozitivní +OK <SP>data
• Negativní -ERR <SP>data
21Aktualizace+OK textProvedení změn a
ukončení relaceQUIT
Transakce+OK textVynulování nastavených označení
RSET
Transakce+OK textŽádná operaceNOOP
Transakce+OK text / -ERR text
Označení zprávy k výmazu
DELE msg#
Transakce+OK obsah/-ERR textZaslání obsahu zprávyRETR msg#
Transakce+OK údaje
-ERR text
Zaslání údajů o zprávách
LIST [msg#]
Transakce+OK údaje
-ERR text
Zaslání souhrnných údajů o stavu mailboxu
STAT
Autorizace+OK text / -ERR text
Autentizace uživatelePASS string
Autorizace+OK text / -ERR text
Identifikace uživateleUSER name
StavOdpověďVýznam (žádost)Příkaz
22
Počítačové sítěInternetový systém elektronické pošty – IMAP4
• Internet Message Access Protocol – IMAP4 – RFC 3501– podporuje:– Autorizovaný přístup do vzdáleného maiboxu a do dalších
poštovních schránek uživatele– Selektivní načtení obsahu zpráv uložených v mailboxu a
dalších poštovních schránkách uživatele– Modifikace obsahu zpráv uložených v mailboxu a dalších
poštovních schránkách uživatele– Sdílení poštovní schránky více uživateli– …….
• IMAP4 – stavový automat – přechod mezi stavy v návaznosti na příkazových sekvencích
23
Počítačové sítěInternetový systém elektronické pošty – IMAP4
• IMAP4 používá transport TCP, well-known port 143, komunikace klient – server (příkaz – odpověď)– příkaz: značka (tag) příkaz parametry (text)
• tag je identifikátor příkazu v rámci relace, to umožňuje, že klient nemusí čekat před vysláním dalšího příkazu na odpověď na příkaz předešlý (a001, a002, a003 …… ). Odpovědi serveru mají předřazeny tagy příslušných příkazů (server může generovat zprávy, které nejsou odpovědi na příkazy, pak jsou to odpovědi neoznačené – místo tagu mají předřazen znak *)
• příkaz – alfabetický řetězec se sémantikou
24
Počítačové sítěInternetový systém elektronické pošty – IMAP4
Příkazy IMAP4 (1)tag NOOP Prázdná operace – klientovi vrací odpověď OK
tag CHECK Kontrola mailboxu na nově došlé zprávy
tag LOGIN user passwd
tag EXPUNGE Výmaz všech zpráv označených příznaky \DELETED (příznaky: \recent \seen \answered \flagged \deleted \draft )
tag LOGOUT
tag COPY sequence mailbox Kopírování specifikovaných zpráv
tag SELECT mailbox Výběr určitého mailboxu
25
Počítačové sítěInternetový systém elektronické pošty – IMAP4
Příkazy IMAP4 (2)tag FETCH sequence data Přesun specifikovaných
zpráv z vybraného mailboxutag CREATE name Vytvoří mailbox daného jména
tag STORE sequence data value Změna dat ve zprávě v mailboxu
tag DELETE name Zruší mailbox daného jménatag SEARCH search_program Vyhledání mailboxu
podle určitého typu zprávtag SUBSCRIBE/UNSUBSCRIBE mailbox Aktivace
/deaktivace přihlášení do sdíleného mailboxu
26
Počítačové sítěInternetový systém elektronické pošty – IMAP4
– Odpovědi - označené (s tagem) i neoznačené (bez tagu):
• tag OK text nebo * OK text kladná odpověď
• tag NO text nebo * NO text neúplné provedení příkazu
• tag BAD text nebo * BAD text záporná odpověď
– Odpovědi neoznačené (určité odpovědi na určité příkazy)
• * # text
• * FLAGS seznam odpověď na SELECT
• * SEARCH sekvence odpověď na SEARCH
• * MAILBOX string odpověď na FIND MAILBOXES
• * BYE text server uzavírá spojení
27
Počítačové sítěInternetový systém elektronické pošty
• Ukázka relace POP3
• Ukázka relace IMAP