Elektronická pošta
- spôsob "offline" komunikácie medzi dvoma alebo viacerými uživateľmi po internete
- pôvodne iba textová (ASCII), ale už podporuje aj UTF8, binárne dáta,...
- ako vyzerá také poslanie emailu:

za doručenie sú zodpovedné komponenty (programy) zvaní aj "mail agents"
konkrétne to sú:
- Mail User Agent (MUA)
- inak nazývaný aj emailový klient
- aplikácia, cez ktorú vie uživateľ poslať, zobraziť si, prečítať si, vymazať správu, ...
- Google Gmail, Microsoft Outlook, elm
- Mail Submission Agent (MSA)
- medzivrstva medzi MUA a MTA pre odoslané emaily
- tento program už je súčasťou mailserveru
- príjme odoslanú správu od emailového klienta a skontroluje je, či neobashuje nejaké chyby
- ak je všetko v poriadku, tak ju prevezme Mail Transfer Agent
- Mail Transfer Agent (MTA)
- program, ktorý preposiela poštu tam, kam treba (podľa doménového mena)
- pošta pekne putuju po rôznych mailových serveroch, až kým nedorazí na mailserver adresáta
- Message Delivery Agent (MDA)
- dostane poštu od cieľového MTA
- správu upraví podľa toho, ako daný mailserver správu ukladá a uloží ju (podrobnosti neskôr)
Formát správy
- RFC 2822
- skladá sa z:
- obálky, ktorá sa používa pri doručovaní správy
- obsahuje adresu odosielateľa (kvôli chybám) a jedného alebo viacerých prijímateľov
MAIL FROM: <sender>
RCPT TO: <receiver> - a nepovinné rozširujúce údaje, ako priorita, úroveň bezpečnosti, ...
- obsah správy, ktorá sa delí na:
- hlavičku
- telo správy
- Hlavička
- obsahuje riadiace dáta správy
- má pevnú štruktúru
- dva typy riadkov:
klúč: hodnota<whitespace>hodnota
- najpoužívanejšie kľúče:
From:- mailbox autora/autorov správySender:- kto správu skutočne poslal, v prípade viacej mailboxov v From:Reply-To:- na ktorú adresu sa má poslať odpoveďTo:- adresa hlavného príjemcuCc:- (carbon copy) další príjemcoviaMessage-Id:- jednoznačná identifikácia správyIn-Reply-To:- ak posielame odpoveď na nejakú správuReferences:- identifikátory ďaších predchádzajúcich správReceived:- každý MTA cez ktorý pošta prejde pridá takýto riadokReturn-Path:- cesta k odosielateľoviDate:- dátum vzniku správySubject:- predmet správyKeywords:- kľúčové slová použité v správeX-niečo:- neštandardná hlavička
-
Telo
- oddelené od hlavičky prázdnym riadkom
- iba ASCII znaky
MIME
- Multipurpose Internet Mail Extensions
- viacero RFC-čiek, najnovšie RFC 2231
- rozširuje správu o rôzne typy dát a tak
- povinné hlavičky:
- Mime-Version: 1.0
- Content-Type: typ[podtyp[; parametry ...]]
- Content-Transfer-Encoding: prenosové kódovanie (nie znaková sada!)
- Content-Type typy:
- text, image, audio, video, application, multipart s podtypom mixed
- prenosové kódovanie:
- 7bit, base64, quoted-printable, 8bit, ...
- od RFC 2047 už aj kódovanie ne-ASCII znakov v hlavičkách v formáte
=?charset?prenosové kódovanie?text?=
Príklad správy (obsahu)
Received: by sender-daemon@arethusa2.fi.muni.cz
PID 31301 for 550646@mail.muni.cz@mail.muni.cz; Fri, 24 Oct 2025 19:00:02 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.muni.cz; h=
content-type:date:from:from:message-id:mime-version:subject:to;
s=20230216; t=1761325202; bh=/Su2rr+kpvkLzz3SovHlLa6eSqnWNoStc5
fEJpoLcLo=; b=QvExDCzxCzsuySXAc0VSIa7np8FG/dkoZa7/Z3f5ODk+lFtEgf
NtCRr177TLIvczjaCJgf70MI+U8GNoEwcomO3XofULIpj2ELuDR7R4f3pzWngSEG
47DFOi5Df1TsDtHqc/669WcGo4owiRFcuFcm5O8iglK8Z0oC/5REr7zpPrLS5/S2
hk+2RkzQDvJVChVHYJV1jYEU5TM8AQD/rdCTLSAWA61Nl5ah/rSOzu3xVS+PWgpH
QfHeUtQkkeIdNnRM9U4DpKgnYNctlKka28oK+qJ++xfL6Y7+zm8oCE3S+9ig8k4I
0kJgkUIxYuyfcIs3Oiu44KQXQ7V63A3t5ctA==
X-Mailer: MIME-tools 5.515 (Entity 5.515)
MIME-Version: 1.0
From: "=?UTF-8?Q?Mat=C3=BA=C5=A1?= Kadlecay" <550646@mail.muni.cz>
To: =?UTF-8?Q?Mat=C3=BA=C5=A1?= Kadlecay <550646@mail.muni.cz>
Subject: =?UTF-8?Q?Test?=
X-Ismu-Affiliation: stud FI MU
X-Ismu-WWW-Page: http://is.muni.cz/osoba/550646
X-Ismu-WWW-Auth-Page: https://is.muni.cz/auth/osoba/550646
X-Ismu-Interface: v2
Message-ID: <1761325200-550646-514.801130046212-2084977@mail.muni.cz>
Content-Type: multipart/mixed; boundary="----------=_1761325200-2084977-0"
Date: Fri, 24 Oct 2025 19:00:00 +0200
Return-Path: 550646@mail.muni.cz
X-ISMU-Expires: 2026-10-24
This is a multi-part message in MIME format...
------------=_1761325200-2084977-0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Ahoj, posielam ti obrázok.
------------=_1761325200-2084977-0
Content-Type: image/jpeg; name="testovaci_obrazok.jpg"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Mailer: MIME-tools 5.515 (Entity 5.515)
Content-Disposition: attachment; filename*=utf-8''testovaci_obrazok.jpg
X-Ismu-Storage: 183777102:485356985
X-Ismu-Attachment-ID: 1761325200.208497788.9782880782164
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAeACgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/Phj
8dPFeif8F4/20vh5rPjLxHrXh5v2XvDFv8N/hM3iWKG18S+LvDfw9+A3xDs/DngvRtb1TT9BHiRt
P1b4qa5ZiSexht49X8ValeXlrZy6ldL+p03xL+Injv8AZ0+HPxV1L4deO/gL4v8AEtj4Z8R+Lvhh
4v1HQpPG3w8fUrO5+0eGfE174W1XVtFuLuz1Oawt7ldO1C4STzIku4LaUXdnB+Rf/BYb4Q/F/wCB
fx8/Z7/4KnfALR7jxBqXwBi07wv8aPDtittAZPA9pqmsNb6xei30u5v5dF8UeH/GXi/4beP9daW7
vvD+hXnhO6021gtLLU9S079ff2Uv2sPgl+238G9N+KXwo1a11fSdQhisPF/gzV/sb+JPA/iBod99
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
2Q==
------------=_1761325200-2084977-0--
SMTP
- Simple Mail Transfer Protocol
- RFC 5321
- 25/tcp, 587/tcp s TLS šifrovaním
- komunikácia pomocou príkazov
S: 220 foo.com Simple Mail Transfer Service Ready
C: EHLO bar.com
S: 250-foo.com greets bar.com
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
C: MAIL FROM:<Smith@bar.com>
S: 250 OK
C: RCPT TO:<Jones@foo.com>
S: 250 OK
C: RCPT TO:<Green@foo.com>
S: 550 No such user here
C: RCPT TO:<Brown@foo.com>
S: 250 OK
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
C: Blah blah blah...
C: ...etc. etc. etc.
C: .
S: 250 OK
C: QUIT
S: 221 foo.com Service closing transmission channel
Ukladanie správ na UNIXe
- veľa spôsobov
- najpoužívanejšie sú mailbox a maildir
- Mailbox
- známy aj ako Mbox
- ukladá všetky správy do jedného jediného súboru
- správy oddeľuje pomocou "From ", kde hneď za ním sa nachádza adresa odosielateľa a dátum prijatia
- potom nasleduje správa (hlavičky aj telo)
- v niektorých prípadoch to môže byť rýchlejšie (pri pridaní a hľadaní pošty)
- problémy: zamykanie súboru
- Maildir
- komplexnejšia adresárová štruktúra (new, cur, tmp)
- každá správa je vo svojom vlastnom súbore
- odstraňuje problémy so zamykaním
- lepšia organizácia
Poštoví klienti pre prečítanie pošty
- POP3
- Post Office Protocol
- výlučný prístup k mailboxu v danom momente
- správy sa stiahnú lokálne a zmažú z mailserveru
- offline prístup
- šetrí miesto serveru
- ideálne pre jedno zariadenie
- 110/tcp, 995/tcp šifrovaný POP3S
- IMAP
- Internet Mail Access Protocol
- zdielaný prístup k mailboxu v danom momente
- správy su uložené na mailserveri
- treba teda prístup na internet (poprípade môže klient správy cachovať)
- šetrí miesto klienta
- možnosť prístupu z viacerých zariadení
- 143/tcp, 993/tcp šifrovaný IMAPS
DNS
- máme špeciálne MX (Mail Exchanger) záznamy
- pre príjemcu s adresou user@example.com:
example.com. IN MX 10 mail1.example.com.example.com. IN MX 20 mail2.example.com. - kde za MX máme prioritu (čím menšie číslo, tým väčšia priorita) a doménové meno mail serveru
- DNS nám vráti zoznam mail serverov zoradený podľa priority
- klient s nimi postupne skúša nadviazať spojenie
- pre každé doménové meno zo zoznamu sa vykonáva samostatný DNS request
- ak sa žiadny MX záznam nenájde, tak sa hľadá A/AAAA záznam
- ak majú dva záznamy rovnakú prioritu, vyberá sa náhodne (kvôli záťaži)
Problém spamu
- spam - nevyžiadaná pošta, s cieľom otravnej reklamy alebo uškodenia
- existuje mnoho techník, ako s ním môže mail server bojovať
- blacklisty - server si udržiava, poprípade sťahuje z nejakého globálneho zoznamu domény, ip adresy alebo emailové adresy, o ktorých je známe, že z nich prichádza spam alebo dovoľujú posielať emaily komukoľvek (open relay servery)
- greylisting - ak server odosielateľa nepozná, zamietne mu komunikáciu zaslaním kódu 4XX a počká nejakú chvíľu, či odosielateľ neskúsi mail poslať znovu (legitímne MTA skúšajú zaslať správu opätovne)
- antispam filtre - software, ktorý preskúma správu a hľadá v nej podozrivé slováy (patterny) často používané v spamoch, tieto správy potom buď maže alebo ukladá do spam kategórie
- predchádzanie email spoofingu - aby sa neposielali falošné maily z validných emailových adries, napr. pomocou:
- SPF - v DNS sa držia záznamy, z akých IP adries môžu prichádzať maily z nejakej domény
- DKIM - do emailu sa pridá privátny kľúč majiteľa domény, server si potom mail overí pomocou verejného kľúču
Jemný úvod do konfigurácie mail serveru
- veľa nástrojov, každý môže robiť buď iba 1 komponentu (napr. MTA) alebo aj viacero
- postfix
- získava, posiela a preposiela poštu (MTA)
- konfiguračné súbory v /etc/postfix
main.cfobsahuje hlavné nastavenie- riadky tvaru:
premenná = hodnota, hodnota, ... - premenné môžeme ďalej používať pomocou $:
premenná2 = hodnota, $premenná - pár dôležitých premenných:
myhostname = proto03.pv090.fi.muni.cz- hostname mailserverumydomain = pv090.fi.muni.cz- naša mailová doménamyorigin = $mydomain- doména ktorá sa pridá za náš lokálny mailmydestination = localhost.$mydomain- domény z ktorých náš server bude akceptovať mailinet_interfaces = localhost- na akých interfacov bude server počúvaťinet_protocols = all- ak chceme ipv4 aj ipv6- premenné môžeme nastavovať priamo v súboroch, alebo pomocou
postconf -e prem=hod - potom treba reloadnuť, ak server beží pomocou
postfix reload master.cfobsahuje informácie o zapnutých službách a démonoch- dovecot
- ukladá poštu (MDA) a poskytuje IMAP/POP3 prístup
- konfigurácia v
/etc/dovecot/ - podporuje maildir (default) aj mailbox
- hlavný konfiguračný súbor
dovecot.conf - príklad syntaxe:
protocols { imap = yes lmtp = yes }