SMTP (Simple Mail Transfer Protokol) - popsán v RFC 2821, aktualizuje a doplňuje informace z RFC 821.
Cíl: efektivní a spolehlivý přenos zprávy od odesílatele k příjemci
nezávislý na přenosovém subsystému. SMTP vyžaduje pouze spolehlivý
uspořádaný datový kanál (nejčastěji TCP).
Důležitá vlastnost SMTP je schopnost doručit mail přes několik sítí tzv. SMTP mail relaying.
Mail může projít přes několik relay nebo gatewaz serverů, další článek přenosu se volí pomocí Mail
eXchange (MX) mechanismu v DNS subsystému.
Základní struktura SMTP komunikace vypadá následovně.
+----------+ +----------+ +------+ | | | | | User |<-->| | SMTP | | +------+ | Client- |Commands/Replies| Server- | +------+ | SMTP |<-------------->| SMTP | +------+ | File |<-->| | and Mail | |<-->| File | |System| | | | | |System| +------+ +----------+ +----------+ +------+ SMTP client SMTP server
Při přenosu naváže klient spojení se serverem a má za ůkol poslat správu na jeden či více serverů, nebo oznámit chybu. Klient resolvuje název domény buď na MX záznam mezilehlého SMTP serveru, nebo (pokud žádný MX záznam neexistuje) na A záznam cílového stroje.
Transakce se skládá z posloupnosti SMTP příkazů identifikujících odesílatele a příjemce
a z těla samotného mailu. Na každý příkaz odpoví server buď úspěchem, nebo dočasnou či trvalou chybou.
Předmětem SMTP transakce je tzv Zpráva (Mail Object), která se skládá z obálky a obsahu.
Obálka: série SMTP příkazů, příkaz je složen ze slovesa následovaného mezerou,
případně argumenty, odpověď začíná trojciferným číselným kódem.
Některé příkazy:
Ukázka SMTP komunikace (S: Server, C: Client):
$ telnet www.example.com 25 S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM:S: 250 Ok C: RCPT TO: S: 250 Ok C: DATA S: 354 End data with . C: Subject: test message C: From: sender@mydomain.com C: To: friend@example.com C: C: Hello, C: This is a test. C: Goodbye. C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye
Tisíce lidí dostávají deně do svých mailových schránek desítky nevyžádané pošty a reklam tzv SPAMu. Je několik způsobů jak s tímto fenoménem bojovat.
Nástroj na filtrování SPAMu z elektronické pošty. SpamAssassin dosahuje úspěšnosti 95-100% v závislosti na fruhu mailu. SpammAssasin udělí každé zprávě bodové ohodnocení v závislosti na tom, kolik prvků, běžně se u spamu vyskytujících, zpráva obsahuje. Tento počet bodů pak porovná s hodnotou ve svém nastavení, pokud jej zpráva přesáhne, je označena jako spam.
Základní formát e-mailových zpráv je popsán v RFC 2822, které nahrazuje zastaralé RFC 822. V tomto RFC se popisuje pouze přenos textových zpráv v ASCII kódování. Formát mailů v jiném kódování, případně formát zpráv s přílohami se diskutuje v jiných RFC (2045, 2046, 2049).
Zprávy se pro potřeby internetové pošty dělí na obálku a obsah.
název pole: tělo poleNázev pole mohou tvořit pouze tisknutelné znaky kromě dvojtečky. Tělo může být buď nestrukturované nebo strukturované, strukturované tělo má specifickou syntaxi popsanou v RFC.
Subject: This is a testSeznam hlaviček, které zpráva MUSÍ obsahovat:
Return-Path: <p.ne@centrum.cz> Received: from ofca.vn.cz [212.71.186.252] by localhost with POP3 (fetchmail-6.2.5) for pantaril@localhost (single-drop); Thu, 30 Mar 2006 04:38:57 +0200 (CEST) Received: from mail1007.centrum.cz (mail1007.centrum.cz [213.29.7.97]) by ofca.vn.cz (8.13.1/8.13.1) with ESMTP id k2U2VXGn027438 for <miceke@valachnet.cz>; Thu, 30 Mar 2006 04:31:33 +0200 Received: by mail1007.centrum.cz id S35569695AbWC3Cba (ORCPT <rfc822;miceke@valachnet.cz>); Thu, 30 Mar 2006 04:31:30 +0200 Received: from 200.74.65.245 by mail1007.centrum.cz (Centrum Mail) with HTTP Date: Thu, 30 Mar 2006 04:31:30 +0200 From: <p.ne@centrum.cz> To: <miceke@valachnet.cz> X-Mailer: Centrum Mail 1.0 MIME-Version: 1.0 X-Priority: 3 Message-ID: <200603300431.20581@centrum.cz> References: <Pine.LNX.4.63.0603231844450.9591@pc87.valachnet.cz> In-Reply-To: <Pine.LNX.4.63.0603231844450.9591@pc87.valachnet.cz> Subject: film Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: 8bit X-IMAPbase: 1115787017 15885 Status: O X-UID: 15885 Content-Length: 1095 X-Keywords:
MIME je definováno v RFC 2045, 2046, 2049. Jedná se o rozšíření
formátu e-mailových zpráv tak, aby umožňoval posílat zprávy obsahující
jiné než ASCII znaky, případně zprávy skládající se z více částí
a binárních příloh.
MIME musí být podporováno na straně serveru (viz RFC 1652 - 8BITMIME
SMTP extension) Příklady serverů které 8BITMIME podporují: Postfix, Qmail,
SendMail, IIS SMTP Service.
Před tím, než se začlo MIME používat, museli se osmi bitová data kódovat
např pomocí base64 kódování tak, aby zpráva obsahovala pouze ASCII znaky,
což způsobovalo větší velikost výsledné zprávy.
MIME definuje nové hlavičky pro specifikaci nových atributů zprávy.
=?znaková sada?kódování?zakódovaný text?=Kódování je buď 'Q' značící quoted-printable, nebo 'B' pro base64.
Content-type: multipart/mixed; boundary="frontier" MIME-version: 1.0 --frontier Content-type: text/plain This is the body of the message. --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 gajwO4+n2Fy4FV3V7zD9awd7uG8/TITP/vIocxXnnf/5mjgQjcipBUL1b3uyLwAVtBLOP4nV LdIAhSzlZnyLAF8na0n7g6OSeej7aqIl3NIXCfxDsPsY6NQjSvV77j4hWEjlF/aglS6ghfju FgRr+OX8QZMI1OmR4rUJUS7xgoknalqj3HJvaOpeb3CFlNI9VGZYz6H6zuQBOWZzNB8glwpC --frontier--