Elektronikus levelezés
Répási Tibor Általános Informatikai Tanszék Miskolci Egyetem
Mai program ● ● ●
Elektronikus levelezés alapfogalmai Levélkezelési folyamatok Levéltovábbító rendszerek – –
●
Sendmail Postfix
Postafiók hozzáférés – –
POP3 IMAP
2
Alapfogalmak ●
Elektronikus levél – – –
Fej (header) és törzs (body) alkotja Szöveg állomány, ASCII kar. készlet Fejrész és törzs között egy üres sor áll Received: (from mail.there.com) by here.com id AA04599 for you; Fri, 13 Dec 1996 08:11:44 -0700 Date: Fri, 13 Dec 1996 08:11:43 From:
[email protected] (Full Name) Message-Id: <
[email protected]> To:
[email protected] Subject: a test This is a one line message.
3
Alapfogalmak ●
Boríték – – – –
Feladó cím (FROM) Címzettek címei (RCPT) Nincs köze a levél fejrészén szereplő adatokhoz! Tényleges kézbesítési adatok
4
Alapfogalmak ●
MUA – levelező kliens – – –
Mail User Agent Felhasználói program levelek feldolgozására Funkciói: ● ●
–
Szolgáltatások: ● ● ● ● ●
–
Levél szerkesztés, küldés Postafiók hozzáférés, levél olvasás Címtár (helyi, távoli) Másolatok készítése Rendezés és szűrés Archiválás Stb.
Példa: Mozilla Thunderbird, Microsoft Outlook, Webmail, stb.
5
Alapfogalmak ●
MTA – levelező szerver – – –
Mail Transport Agent Levelek továbbításáért felelős szolgáltató program Funkciói: ● ● ● ● ●
–
Levelek fogadása (helyi, távoli) Levelek ideiglenes tárolása (queueing) Döntés a levelek sorsáról (mail routing) Levelek kézbesítése (delivery) Levelek továbbítása (relay)
Szolgáltatások: ● ●
Címátírás (rewrite): alias, mailing list, virtual user Levelek szűrése, osztályozása 6
Alapfogalmak ●
Postafiók – – – –
Levelek tárolását szolgáló adatstruktúra Egy felhasználónak lehet több is (INBOX, Sent, stb.) A kézbesítés célja (delivery destination) Formátuma: ● ● ●
–
MBOX: egyszerű fájl MailDir: jegyzék Egyéb
Hozzáférés: ● ●
Helyi: ez ma már ritka (pl. pine) Távoli: szokásos (POP3 vagy IMAP)
7
Alapfogalmak ●
DSN – állapot értesítő – – –
Delivery Status Notification Az MTA generálja Alakja: a.b.c ●
Az a mező eredmény: – – – – –
●
1 : információ 2 : sikeres továbbítás 3 : átirányítás 4 : ideiglenes hiba 5 : végzetes hiba
A b és c mezők további részleteket árulnak el – – – –
4.3.0 : a legjobb MTA nem alkalmas 4.0.0 : a kapcsolat az MTA-val megszakadt 5.1.1 : a címzett ismeretlen 5.6.0 : adatformátum hibás
8
Levél kezelési folyamat ●
Feladás (submission) – –
A feladó MUA végzi A MUA ismer egy MTA-t, annak adja fel a leveleket ●
●
Helyi feladás: ha az MTA a MUA-val egy gépen van, a kommunikáció lokális IPC (pipe) pl. /usr/bin/sendmail [options] < message
Távoli feladás: a MUA hálózaton keresztül adja fel a levelet az MTA-nak (SMTP vagy ESMTP protokollt használva)
9
Levél kezelési folyamat 2 ●
Sorba állítás (queueing) – –
Az MTA minden levelet sorba állít Továbbítási költséget számít (prioritás) ● ● ● ●
– –
Kisebb szám jelenti a nagyobb prioritást Induló érték pl. levél méret * címzettek száma Routing során változhat (pl. drága vonalon kell átjátszani) Dinamikusan változik: sikertelen továbbítási kísérlet növeli
A sorba állítást megelőzheti egy szűrés (pl. virus szűrés) Ha az üzenet sorba állt: ● ●
Az MTA DSN=2.0.0, STAT=sent üzenetet ad Ettől kezdve a levél nem „veszhet” el!
10
Levél kezelési folyamat 3 ●
Sor feldolozás (queue processing) –
Az MTA feldolgozza a sort: ● ● ●
–
Periodikusan, Adminisztratív utasításra (egy, több vagy az összes levélre), Másik MTA kérésére (ESMTP ETRN)
Mozzanatai: ● ● ● ● ●
●
Prioritás növelése, Routing: döntés, hogy mit kell tenni a levéllel Rewrite: a levél átírása (a továbbításnak megfelelően) Átadás a mailer-nek Sikeresség esetén eltávolítás a sorból, igén esetén DSN küldés, Régen várakozó levelek továbbításáról értesítés a feladónak (esetlen DSN). Szabály 4H/5D.
11
Levél kezelési folyamat 4 ●
Továbbítás (relay) – –
Ha a levél nem kézbesíthető helyileg. A továbbítás számos módon történhet: ● ● ●
–
SMTP: egyszerű Internetes továbbítás ESMTP: bővített SMTP UUCP, UCX, X.400, stb.: nem Internetes levéltovábbító rendszerek felé
Hova továbbítandó? ● ●
Mailertable DNS lekérdezés a címzett domain MX rekordjaira
12
Levél kezelési folyamat 5 ●
Kézbesítés (delivery) – – –
Ha a levél helyben kézbesíthető. LDA (Local Delivery Agent) végzi Lépései: ●
●
●
●
●
–
Routing: feloldja az email címet felhasználó névre (virtualuser, alias) Megvizsgálja, hogy van-e a felhasználónak .forward fájlja, értelmezi. Az LDA argumentumban a felhasználót, pipe-on a levelet kapja. Az LDA-nak is lehet felhasználói szintű konfigurációja (pl. .procmailrc) A felhasználó postafiókjába helyezi el a levelet.
A kézbesítés készen van!
13
Levéltovábbító rendszerek ●
MTA funkciót ellátó szoftverek –
Sendmail ● ● ● ●
●
szabványnak minősül nagyon elterjedt egyszerű felépítés, összetett konfiguráció sokat kritizált
Egyéb MTA-k – – –
Postfix: elterjedt, összetett felépítés, egyszerű konfiguráció, biztonságos, lassú Qmail: gyors, kevésbé elterjedt vannak még: exim, zmail, vmail, ssmtp, M$ Exchange Server, ... 14
Sendmail ● ●
Eric Allmann fejlesztése, első MTA Egyszerű szerkezet: – – – – –
●
Input: (E)SMTP, local Queue: egy jegyzékben, levelenként 2 fájl Periodikus, kézi vagy ETRN indikált feldolgozás Mailer: többféle van (smtp, local, procmail, …) Szűrők: Milter API-t használó tetszőleges program, használhat input és output szűrőként egyaránt
Konfiguráció: – –
igen összetett feldolgozás orientált 15
Sendmail ●
Konfiguráció – –
alapkonfiguráció kb. 2000 sor szabályok szintaxisa: ################################################################### ### Ruleset 90 -- try domain part of mailertable entry ### ################################################################### SMailertable=90 R$* <$- . $+ > $* R$* <$~[ : $* > $* R$* < . $+ > $* R$* < $* > $* R< $~[ : $* > $* R< $* > $*
$: $1$2 < $(mailertable .$3 $@ $1$2 $@ $2 $) > $4 $>MailerToTriple < $2 : $3 > $4 check -- resolved? $@ $>Mailertable $1 . <$2> $3 no -- strip & try again $: < $(mailertable . $@ $1$2 $) > $3 try "." $>MailerToTriple < $1 : $2 > $3 "." found? $@ $2 no mailertable match
16
Sendmail ●
Egyszerűsített konfiguráció – – –
●
a sendmail.cf fájlt senki sem szerkeszti M4 makrónyelv áll rendelkezésre, egyszerű szerkezetű alapkonfigurációt kb. 84 soros M4 fájlból elő lehet állítani
Táblákat és osztályokat használ: – – – – – – –
aliases: álnevek, listák access: hozzáférés szabályozás local-host-names: saját hosztnevek osztálya virtual-domains: VirtHost osztály virtual-users: csak email-címek hozzárendelése mailertable: domain-hez mailer rendelhető generictable: ez mindent tud! 17
Postfix ● ● ●
Wietse Venema fejlesztése Első sorban a biztonság Bonyolult szerkezet – –
●
Biztonság – –
●
sok komponens sok queue nincs szüksége root jogra, sem setuid/setgid -re egyszerű (alap)konfiguráció
Teljesítmény –
sokkal lassabb a sendmail-nél 18
Postafiók hozzáférés ●
●
A felhasználó postafiókjához való hozzáférést nem az MTA biztosítja! Háromféle lehet – –
●
helyi: ez ma nem szokásos már (pl. pine) távoli: igen elterjedtek a POP3 és IMAP protokollok
POP3 (Post-Office-Protocol) – – –
egyszerű, korlátozott lista, és get metódusok „leave-message-in-mailbox” funkció van, de ... 19
Postafiók hozzáférés ●
IMAP – Internet Mailbox Access Protocol – – – – – –
●
elterjedt, korszerű sok funkció, jó szolgáltatások csak fejrészt tud lekérdezni egyesével letölthetőek a levelek mappák létrehozását támogatja mailbox quota támogatás
Egyéb –
van több egyedi protokoll is, általában POP3 vagy IMAP jellegűek. 20