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 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ű.
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 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ó.
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 |
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.
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.
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.
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 |
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).
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.
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.
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
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