[[oktatas:hálózat|< Hálózat]]
====== E-mail ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2013, 2015
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== 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.
{{:oktatas:hálózat:e-mail.png|}}
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.
{{:oktatas:hálózat:e-mail_weben.png|}}
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.
{{:oktatas:hálózat:e-mail_csak_weben.png|}}
===== 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 |
{{:oktatas:hálózat:e-mail.png|}}
===== Levelezőkliensek =====
A levelezőkliens egy program, amely lehetővé teszik levelek olvasását, letöltve, vagy
a szerveren tárolva.
* [[http://www.pmail.com/|Pegasus Mail]]
* [[http://www.claws-mail.org/|Claws-Mail]]
* [[https://www.mozilla.org/hu/thunderbird/|Thunderbird]]
* [[http://www.mutt.org/|mutt]]
* [[https://www.ritlabs.com/en/products/thebat/|TheBat!]]
* Opera Mail
* KMail
* [[http://sylpheed.sraoss.jp/|Sylpheed]]
* MS Outlook
* Outlook Express
* https://nylas.com/N1
* https://github.com/nylas/N1
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:
* Maildir
* Mbox
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:
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 ; 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:
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=
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
http://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 .
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 =====
- Válaszoljon a következő kérdésekre:
- Milyen porton keresztül kérhetjük le a leveleinket?
- Milyen protokollon keresztül küldhetünk leveleket?
- Milyen protokollon keresztül olvashatjuk leveleinket?
- Mire szolgál a levelezőkliens?
- Mondjon egy levelezőklienst?
- Hogyan épül fel egy e-mail?
- Mire való a Received nevű mező egy e-mail fejlécben?
- Mire való a Return-paht mező egy e-mail fejlécben?
===== "Ingyenes" szolgáltatók =====
* https://onbox.hu/
* https://freemail.hu/
* https://gmail.com/
* https://gmail.hu/