[[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/