Elektronická pošta je způsob komunikace, který vznikl na víceuživatelských sálových počítačích během šedesátých let minulého století. Původně se jednalo pouze o jednoduchý systém, který umisťoval soubory do uživatelova domovského adresáře. S nástupem ARPANETu o několik let později byla elektronická pošta rozšířena do distribuovaného prostředí a rychle se stala hlavní službou sítě. Tou zůstává i v rámci dnešního Internetu. [1]
Systém elektronické pošty sestává z následujících komponent:
Zpráva elektronické pošty se skládá z obálky a dat. Obálka zprávy obsahuje následující informace:
Samotná data zprávy [2] pak můžeme rozdělit na následující části:
klíč:␣hodnota
.
␣hodnota
jsou pokračováním hodnoty
z předchozího řádku.
0x0D
) a LF
(0x0A
).
Mezi standardně používané hlavičky elektronické pošty patří:
From:
E-mailová adresa autora / autorů zprávy
Sender:
E-mailová adresa skutečného autora zprávy
Reply-To:
E-mailová adresa, na kterou se má odeslat odpověď
To:
Adresa hlavního příjemce / příjemců zprávy
Cc:
Další příjemci zprávy
Bcc:
Další tajní příjemci zprávy
Message-Id:
Jednoznačná identifikace zprávy
In-Reply-To:
Identifikátor zprávy, na kterou zpráva
reaguje
References:
Identifikátory předchozích zpráv
Received:
Každý MTA po cestě přidá jeden
takovýto řádek se služebními informacemi
Return-Path:
Cesta k původnímu odesílateli zprávy
Date:
Datum vzniku zprávy
Subject:
Předmět zprávy
Keywords:
Klíčová slova
X-cokoliv
.
Hlavičky mohou standardně obsahovat pouze ASCII znaky. Použití ne-ASCII znaků v hlavičkách pak popisuje standard MIME Words [5], který diktuje následující formát:
=?přenosové kódování?znaková sada?text?=Přenosová kódování jsou v tomto případě definována dvě:
B
(Base64) – Úsporné kódování (4 znaky představují 3 bajty)
Q
(Quoted-printable) – Ne-ASCII
znaky a znak
=
jsou kódovány jako =hexa kód
Tělo zprávy může obsahovat ASCII text. S využitím rozšíření MIME [3–9] však lze do těla vkládat i text v osmi- a vícebitových kódováních nebo libovolné binární soubory. Povinné hlavičky MIME jsou následující:
Mime-Version: 1.0
Content-Type: typ[/podtyp[; parametry …]]
text / plain, html, richtext, …
image / gif, jpeg, g3fax, …
audio / basic, wave, mp3, …
video / mpeg, quicktime, …
application / octet-stream, postscript, pdf, …
x-cokoliv / …
multipart / mixed
– Více objektů různých typů
multipart / parallel
– Paralelně prezentovatelné části
(např. text a zvuk)
multipart / alternative
– MUA má zobrazit
jednu z částí (např. text/plain
a text/html
)
Content-Transfer-Encoding:
přenosové kódování
7bit
– Jen ASCII
base64
– Úsporné kódování (4 znaky představují 3
bajty)
quoted-printable
– Ne-ASCII
znaky a znak
=
jsou kódovány jako =hexa kód
8bit
– Přímé použití libovolných bajtů
Pro přenos pošty nad TCP/IP stackem slouží protokol
SMTP [10]. Protokol je rozšiřitelný (tzv.
ESMTP) [11], přičemž mezi dnes běžně
podporovaná rozšíření patří např. podpora 8-bitového přenosu (příkaz
8BITMIME
), přenos bez potvrzování (příkaz PIPELINING
)
a další.
Klient se připojuje k (E)SMTP serveru na TCP portu 25
a zahajuje komunikaci příkazem HELO
(nebo EHLO
pro
vyžádání práce s ESMPT
). Následně dojde k předání obálky zprávy
pomocí následujících příkazů:
MAIL FROM: odesílatel RCPT TO: adresátNásledně klient zadává příkaz
DATA
, za kterým následuje datová
část zprávy. Ta je ukončena tečkou na samostatném řádku. Klient ukončuje relaci
pomocí příkazu QUIT
.
Mezi běžně používané (E)SMTP servery (MTA) na UN*Xových systémech patří:
„Exim is a message transfer agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the Internet. It is freely available under the terms of the GNU General Public Licence. In style it is similar to Smail 3, but its facilities are more general. There is a great deal of flexibility in the way mail can be routed, and there are extensive facilities for checking incoming mail. Exim can be installed in place of Sendmail, although the configuration of Exim is quite different.“
„What is Postfix? It is Wietse Venema's mailer that started life at IBM research as an alternative to the widely-used Sendmail program. Postfix attempts to be fast, easy to administer, and secure. The outside has a definite Sendmail-ish flavor, but the inside is completely different.“
Při doručování lokální pošty (E)SMTP servery spouští MDA. Mezi běžně používaná MDA servery na UN*Xových systémech patří Procmail [15] a Maildrop [16].
Pro přístupu k elektronické poště uložené na vzdáleném stroji slouží protokoly POP (verze 3) a IMAP (verze 4). Protokol POP umožňuje výlučný přístup k uživatelově schránce, přičemž práce s poštou je v rámci dané relace atomická. Díky jednoduchosti protokolu není možné v rámci schránky vytvářet adresáře. Protokol IMAP oproti tomu umožňuje sdílený přístup k uživatelově schránce, přičemž obsah schránky je možné organizovat do adresářů.
Mezi běžně používané POP/IMAP servery na UN*Xových systémech patří DoveCot [17]. Mezi běžně používané POP/IMAP klientské programy (MUA) na UN*Xových systémech patří Mutt [18], Alpine [19] a sup [20].
HTTP je spolu s elektronickou poštou jednou z hlavních služeb současného Internetu. Existuje proto množství HTTP serverů, které poskytují skrz webové rozhraní přístup k MUA. Toto umožňuje naprosté odstínění uživatele od konfigurace parametrů stahování a odesílání pošty.
Mezi běžně používané POP/IMAP servery na UN*Xových systémech patří SquirrelMail [21], Roundcube [22] a Mailpile [23].
Pokud je obálkový adresát zadán ve formátu
uživatel@[IP adresa]
, může
MTA zprávu rovnou odeslat. Pokud je obálkový adresát zadán ve
formátu uživatel@doména
, musí MTA
nejprve zjistit, na jaké IP adrese se nachází MTA pro
příslušnou doménu. K tomuto účelu slouží MX DNS
záznam, který udává seznam MTA domény seřazených podle pořadí,
v jakém mají být zkoušeny:
; Zone file for pv090.fi.muni.cz $TTL 1D ; … @ IN MX 0 proto06 @ IN MX 0 proto06-alpha @ IN MX 10 erigonaPro stažení MX záznamů z DNS serveru můžeme použít příkaz
host -t mx doména DNS_server
.
Dalším DNS záznamem, který se pojí s elektronickou poštou je SFP záznam [24]. Implicitně může MUA odesílající zprávu skrz MTA zadat libovolného obálkového odesílatele. Aby se zabránilo podvrhu, je možné SFP záznamem zadat, z jakých IP adres lze odesílat zprávy se zadaným obálkovým odesílatelem.
Jedním z problémů elektronické pošty je pošta nevyžádaná, která podle statistik tvoří více než 80 % veškerého (E)SMTP provozu. [25] Existuje několik druhů obrany proti spamu:
cypherpunks@toad.com
spolu s ukázkovou implementací
nazvanou HashCash. [27] Systém nebyl nikdy
standardizován a jedná se tedy spíš o kuriozitu. Na podobném principu
fungují některé dnešní kryptoměny.