Tartalomjegyzék

< Hálózat

E-mail

Az elektronikus levelezésről

Nincs másról szó, csak levelet küldünk, levelet fogadunk, mindezt levelező szervereken keresztül.

A felhasználó az e-mailek kezelését vagy egy levelezőkliensben végzi, vagy egy böngészőben webes felületen. Manapság gyakori a levelek webfelületen való kezelése.

A következő ábrán a leveleket levelezőklienssel kezeljük.

A levelező kliens és szerverek között használt protokollokat látjuk a következő ábrán.

Egy levelezőkliens, ha egy levelet küld a szerver felé, azt SMTP protokollon keresztül teszi. A levelezőszerverek egymás között a levelet szintén SMTP protokollon keresztül továbbítják. Amikor letöltöm a leveleimet a helyi kliens programomba akkor azt POP3 protokollon keresztül teszem. Ha a leveleket a szerveren olvasom, akkor az IMAP protokollal tehetem meg.

A következő ábrán a levél olvasója HTTP protokollon keresztül olvassa a leveleit. Ez csak úgy lehetséges, hogy van a levelezőszervernek egy webes felülete.

Az utolsó esetben a levélküldő is HTTP szerveren keresztül éri el a levelező szervert, vagyis a szerveren lenni kell egy webes felületnek is.

A levelezés protokolljai

A szoftverek szempontjából a levelekkel alapvetően két dolgot tehetünk. Levelet küldünk vagy letöltjük azokat. A levélküldés protokollja az SMTP. A levelek letöltése két módon történhet. Vagy letölti a kliens program az összes levelet, vagy mindig csak az a levelet töltöm le, amelyiket olvasni szeretnék, a tárolás továbbra is a szerveren történik. A levelek letöltésére hozták létre a POP3 protokollt. Ha a leveleket a szerveren tárolva olvassuk, akkor IMAP protokollt használunk.

Így három protokollunk van: SMTP, POP3 és IMAP. Mind a három protokoll titkosítható. Ha egy protokoll titkosított a nevük után tett „S” betűvel szokás jelezni. A titkosítás SSL vagy TLS protokollal történhet.

Protokoll Funkció Port RFC
SMTP levéltovábbítás 25 2821
POP3 levélleszedés 110 2449
IMAP levélolvasás, tárolás szerveroldalon 143 3501
SMTPS SMTP titkosítva 465 2487
POP3S POP3 titkosítva 995 2595
IMAPS IMAP titkosítva 993 2595

Levelet küldhet egy levelező kliens egy levelező szervernek:

Kliens → SMTP → Szerver
Kliens → SMTPS → Szerver

Levelet egy levelező szerver is küldhet egy másik levelezőszervernek:

Szerver → SMTP → Szerver

A kliensek POP3 vagy IMAP protokollon keresztül olvassák a leveleket:

Kliens ← POP3 ← Szerver
Kliens ← IMAP ← Szerver
Kliens ← POP3S ← Szerver
Kliens ← IMAPS ← Szerver

A levelek olvasásának még lehetséges két módja. Ha az adott szerverre van hozzáférésünk, természetesen ott is olvashatunk az adott levelezőklienssel leveleket. A másik lehetőség, hogy a helyi leveleket a webszerver webes felületen szolgáltatja. Ez utóbbi manapság nagyon népszerű.

Egy kapcsolat

A levélküldés kezdeményezője nyit egy portot 1023-as port felett. Az operációs rendszer által kínált 1023 feletti valamelyik port. A szerveren viszont kötelezően a 25 portot használjuk. A kezdeményező mondja meg a szervernek, hogy a 25-ös azonosítójú szolgáltatást szeretnénk használni.

A kezdeményező számítógépen egy program, olyan hálózati csomagot állít össze, amelyben leírja saját IP címét, milyen porton várja a választ, a csomagnak milyen szervergépre kell eljutnia, és azon milyen portot szeretne elérni:

Kezdeményező → → → → → → Szerver
195.68.8.1 190.8.10.5
1024 25

A szerver így tudni fogja, hogy 195.68.8.1-es gépnek kell visszaküldeni. A válasz csomagban pedig benne lesz, hogy 1024-es porton figyelő programnak kell átadni.

Egy e-mail szerver összetevői

Egy levelező szerver több feladatot is ellát egyszerre. Levelek fogadása, továbbítása, elosztása, átadása, tárolása, kiszolgálása kliensek számára. Minden funkciónak külön neve van, a levelezőszervert ennek ellenére egyszerűen csak MTA-nak szoktuk hívni. Ebbe persze nem értjük bele a POP3 és az IMAP szolgáltatást.

E-mail szerver
MSA - Mail Submission Agent - fogad
MTA - Mail Transfer Agent - továbbít
MDA - Mail Delivery Agent - eloszt, átad
MS - Mail Storage - tárol
POP3 levelek letöltése, olvasása
IMAP levelek olvasása

Ha a szerveren felhasználóknak vannak hozzáféréseik, akkor valószínűleg levelezőkliens is van, amely a helyi tárolóból képes olvasni a leveleket. Ezeket MUA néven emlegetjük.

E-mail kliens
MUA

A MUA a Mail User Agent szavakból alkotott betűszó.

Egy levél útja

A MUA program SMTP protokollon keresztül elküldi a levelet egy MTA részére. Az MTA SMTP protokollon keresztül küldi tovább egy másik MTA-nak. Ha a másik MTA úgy gondolja, hogy a postafiókot ő kezeli, akkor eltárolja (Inbox). A fogadó fél POP3 protokollon keresztül leszedi a leveleket, hogy elolvashassa.

MUA SMTP MTA SMTP MTA Inbox POP3 MUA

Levelezőkliensek

A levelezőkliens egy program, amely lehetővé teszik levelek olvasását, letöltve, vagy a szerveren tárolva.

A Thunderbird népszerű levelezőprogram. Nagy előnye, hogy szabad szoftver, vagyis üzleti célú felhasználása is ingyen van.

A mutt levelező program szintén szabad szoftver, de felülete konzolos. Általában a szerveren szokott lenni ilyen, amit SSH protokollon keresztül belépve használhatunk. Természetesen munkaállomásokon is telepíthető. Alapértelmezésként a helyi mailboxot állományt, vagy Maildir könyvtárat olvassa, de rávehető POP3 vagy IMAP-on keresztüli letöltésre is.

Levéltárolási formák

Alapvetően kétféle levéltárolási forma a legelterjedtebb szervereken. Ezek a következők:

A levelező szerverek ezek valamelyikét használják. A levelező kliensek azonban használhatnak saját formátumot is.

Mbox

Minden levél egyetlen állományban tárolódik. Gyorsabb keresés, viszont, nagy tömegű levelek esetén nem ajánlott.

Linuxos szerveren a levelek általános helye ilyenkor:

/var/mail/

Egy joe nevű felhasználónak az állománya például:

/var/mail/joe

Egy új telepítésű Linuxon ez az állomány nem létezi. Ha a felhasználó kap egy levelet, akkor az automatikusan létrejön.

Maildir

Minden levél külön fájlban tárolódik. Nagy forgalmú levelezőszerverek esetén ajánlott.

A levelek a felhasználó saját könyvtárában egy Maildir nevű könyvtáron belül tárolódnak:

/home/joe/Maildir

A Maildir könyvtárban újabb három könyvtár van. Ezek a cur, new és a tmp.

Könyvtár Funkció
cur Olvasott levelek
new Új levelek
tmp Levélfogadáskor ide érkezik először

E-mail

Az e-mailről

Az e-mailt az RFC 822 írja le. Ennek továbbfejlesztett verziója az RFC 2822. Ezzel azonban csak a 7bites US-ASCII kódolású levelek készíthetők.

A MIME (Multipurpose Internet Mail Extensions) lehetővé teszi levelek küldését más kódolással, képek, bináris, illetve minden nem szöveges anyag küldését (RFC 2045, 2046, 2047, 2048, 2049).

E-mail forrás

From - Fri Feb 24 09:06:44 2012
X-Account-Key: account3
X-UIDL: 1330070807.83976.fmx03.freemail.hu
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <nagyjozsef@gmail.com>
Delivered-To: kispeter@freemail.hu
Received: (qmail 83917 invoked from network); 24 Feb 2012 09:06:46 +0100
Received: from 127.0.0.1 (HELO fmx03.freemail.hu) (209.85.212.176)
  by localhost with SMTP; 24 Feb 2012 09:06:46 +0100
Received: by wibhq12 with SMTP id hq12so1783514wib.35
        for <kispeter@freemail.hu>; Fri, 24 Feb 2012 00:06:46 -0800 (PST)
Received-SPF: pass (google.com: domain of nagyjozsef@gmail.com designates 10.216.131.234 as permitted sender) client-ip=10.216.131.234;
Authentication-Results: mr.google.com; spf=pass (google.com: domain of nagyjozsef@gmail.com designates 10.216.131.234 as permitted sender) 
        smtp.mail=nagyjozsef@gmail.com; dkim=pass header.i=nagyjozsef@gmail.com
Received: from mr.google.com ([10.216.131.234])
        by 10.216.131.234 with SMTP id m84mr705279wei.24.1330070806022 (num_hops = 1);
        Fri, 24 Feb 2012 00:06:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=message-id:date:from:user-agent:mime-version:to:subject
         :content-type:content-transfer-encoding;
        bh=mcX38+lptAAGYtiMH7DsF42RqHwOkIcCIan7w2WpQ7E=;
        b=ZIruuDghSYvZgachdo9XRThV110kWjAYn54Zxa7NiM8oFZkcsxW/sOrf8Jj2EO6sNU
         redA47a+5n5gyKb0zsYuvX71iIUvEJxhzKCfbe5BtimE8pPTua4pmuo+CcubInRECanT
         T5ofwK/AIxEZpAl2+xJMp9gMDUh879Wtbne84=
Received: by 10.216.131.234 with SMTP id m84mr577703wei.24.1330070805954;
        Fri, 24 Feb 2012 00:06:45 -0800 (PST)
Return-Path: <nagyjozsef@gmail.com>
Received: from [192.168.16.20] (catv-178-48-52-12.catv.broadband.hu. [178.48.52.12])
        by mx.google.com with ESMTPS id dr5sm5030563wib.0.2012.02.24.00.06.44
        (version=SSLv3 cipher=OTHER);
        Fri, 24 Feb 2012 00:06:44 -0800 (PST)
Message-ID: <4F474509.1010004@gmail.com>
Date: Fri, 24 Feb 2012 09:06:33 +0100
From: =?ISO-8859-2?Q?Nagy_Jozsef= <nagyjozsef@gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
MIME-Version: 1.0
To: kispeter@freemail.hu
Subject: tesz 001
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Freemail: message scanned
 
teszt 001
 
-- 
Nagy Jozsef
https://szit.hu

Egy e-mail két részből áll. A fejrész és a törzs. A törzs tartalmazza magát a levelet. A fejrész pedig az e-mailről add információkat.

Ha ki kell deríteni, honnan jött egy levél, akkor ahhoz Received mezők használata ajánlott, a többi aránylag könnyen hamisítható.

A fejrész talán legfontosabb része amely leírja kinek megy a levél. Ebből azonban kettő van. Ha nevén akarjuk nevezni akkor az egyik a „RCPT TO” mező, a másik a „To” mező. A levelezőszerverek a RCPT TO mező alapján irányítják a leveleket a „To” mezővel nem foglalkoznak. Viszont a „To” mező az emely meghatározza mi jelenjen meg a levél olvasójának.

Ilyen fontos rész lehet még, hogy kitől jött a levél. Ebből is kettő van, a „MAIL FROM” és a „From”. A levelezőszerverek itt is csak az elsővel foglalkoznak, a második pedig az ami a felhasználók számára megjelenik. Látjuk, hogy ami a felhasználónak megjelenik az egészen más is lehet mint amit levelezőszerver figyelembe vesz. Persze így van ez a „Csigapostán” (hagyományos posta) is. Van egy boríték, az alapján kézbesítenek, és a levélben lehet egészen más címzett.

Feladó/címzett

Envelope sender/recipient Levélfejléc
Boríték Levél
MAIL FROM:
RCPT TO:
Return-Path:
Delivered-To:
Received-To:
From:
To:
Subject:

Így fordulhat elő, hogy megérkezik egy levél de To: mezőben nem is az én e-mail címem van. Ez persze természetes egy levelezőlistánál.

POP3

Legyen egy POP3 szerver a következő IP címen: 192.168.6.1 A POP3 kommunikáció teszteléséhez kapcsolódjunk egy POP3 szerverhez a következő módon:

telnet 192.168.6.1 110

Legyen egy joe nevű postafiók a levelezőszerveren:

+OK <1056.1324405224@piros.hu>
user joe
+OK 
pass titok
+OK
list
1 1000

SMTP

Az SMTP levélküldésre kitalált protokoll. Alapértelmezett portja a 25.

220 piros.hu ESMTP Postfix (Debian/GNU)
helo vagyok

mail from: valaki@valahol2.hu

rcpt to: joe

data
354 End data with <CR><LF>.<CR><LF>
To: Neked
Subject: teszt 001

.
220 piros.hu ESMTP Postfix (Debian/GNU)
ehlo vagyok
250-piros.hu
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
502 5.5.2 Error: command not recognized
250 2.1.0 Ok

Gyakorlat

  1. Válaszoljon a következő kérdésekre:
    1. Milyen porton keresztül kérhetjük le a leveleinket?
    2. Milyen protokollon keresztül küldhetünk leveleket?
    3. Milyen protokollon keresztül olvashatjuk leveleinket?
    4. Mire szolgál a levelezőkliens?
    5. Mondjon egy levelezőklienst?
    6. Hogyan épül fel egy e-mail?
    7. Mire való a Received nevű mező egy e-mail fejlécben?
    8. Mire való a Return-paht mező egy e-mail fejlécben?

"Ingyenes" szolgáltatók