Emailové protokoly prakticky

Níže uvedeme příklad komunikace pomocí protokolů SMTP, POP3 a IMAP s mailovými servery. Pro uvedené příklady je potřeba telnetový klient, na linuxu je konzolový příkaz telnet na Windows je vhodný program Putty. Dále je potřeba nástroj pro zakódování textu do base64, na linuxu příkaz base64 nebo třeba online Utilities-online.info či base64decode.org a base64encode

SMTP

Simple mail transfer protocol je určený pro komunikaci s odesílacím serverem a pro komunikaci mezi servery během doručování. Pro zkoušku si vytvoříme účet na serveru centrum.cz, kde mám odzkoušené, že se lze přes telnet přihlásit. Některé SMTP servery vyžadují vyšší míru zabezpečení komunikace, kterou je ručně těžké zajistit. Pro přihlášení potřebujeme následující údaje:

server	smtp.centrum.cz
port	25
login	maturantiinf@centrum.cz
heslo	smtpTest2020

Nejprve zjistíme, jak vypadá náš login a heslo zakódovaný pomocí base64. Buďto online nebo v linuxu příkazy:

echo -n „maturantiinf@centrum.cz“ | base64 a ~~SP~~echo -n „smtpTest2020“ | base64

Všimněte si, že k příkazu echo přidáváme volbu -n, která zajistí, aby se nevypisovalo odřádkování, jinak bychom v kódu měli na konci loginu či hesla ještě navíc „enter“, čili znaky ASCII 10 a 13, které by způsobovaly, že jméno a heslo bude špatně. Pokud příkazy zadáváte do konzole, všimněte si, že před echo u hesla jsem udělal mezeru, čímž zamezím tomu, aby se tento příklad uložil do historie použitých příkazů v souboru /home/user/.bash_history.

Připojíme se k serveru telnetovým programem. V linuxu zadáme telnet smtp.centrum.cz 25 v Putty zvolíme u session „Host name: smtp.centrum.cz“, „Connection type: RAW“ a „Port: 25“, ještě je praktické vespod zvolit „Close window on exit: Never“, aby se nám okno nezavřelo ihned po ukončení spojení, ale abychom jej zavřeli křížkem, až si vše přečteme.

Nyní probíhá komunikace:

► 220 smtp.centrum.cz ESMTP MAdfix (User/GNU)	server nás zdraví, je připraven si povídat
◄ ehlo centrum.cz	pozdravíme server s názvem jeho domény
► 250-gm-smtp11.centrum.cz 250-PIPELINING 250-SIZE 26214400 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250-CHUNKING 250 STARTTLS	server nás informuje o způsobech komunikace, mimojiné říká, že akceptuje autorizaci ve formě PLAIN nebo LOGIN
◄ AUTH LOGIN	zvolíme si jako metodu autorizace LOGIN, kdy postupně zadáme base64 zakódovaný login a pak heslo
► 334 VXNlcm5hbWU6Cg==	server posílá kód 334, kterým akceptuje požadovanou metodu autorizace a přímo v kódu base64 odpovídá „Username:“
◄ bWF0dXJhbnRpaW5mQGNlbnRydW0uY3o=	zadáme base64 zakódovaný login
► 334 UGFzc3dvcmQ6Cg==	data byla úspěšně převzata, teď požaduje „Password:“ (sekvence znaků za číslem dekódovaná base64)
◄ c210cFRlc3QyMDIw	zadáme base64 zakódované heslo
► 235 2.7.0 Authentication successful
◄
►
◄
►
◄
►
◄
►
◄