Att SMTP Server - Protokol SMTP

Elektronická pošta existovala v té či oné podobě již v 60. letech minulého století. Lidé si navzájem zanechávali zprávy pomocí různých metod na sálových počítačích, ale standardizovaná metoda pro odesílání a přijímání elektronické pošty byla navržena až v srpnu 1982, kdy Institut informačních věd zveřejnil protokol SMTP (The Simple Mail Transfer Protocol; RFC 821).

Protokol SMTP se v síti ARPANET rychle stal populárním, protože nahradil starší složitější metody používané k přenosu pošty z jednoho hlavního počítače na druhý, a poprvé byl podporován koncem roku 1982 v prvním poštovním přenosovém agentu Sendmail v BSD 4.1c.
Protokol byl od té doby pravidelně revidován a rozšiřován, ale základní metoda odesílání pošty se z velké části nezměnila.

Protokol je textový a původně nepodporoval doručování binárních dat. Díky tomu, že byl založen na textu, se však protokol snadno implementoval a udržoval. Koncem 80. let se stal populárním protokol MIME (Multipurpose Internet Mail Extensions) pro kódování a odesílání binárních dat prostřednictvím protokolu SMTP. Dnes je SMTP dominantním protokolem pro odesílání a přijímání e-mailů na internetu a detailní znalost tohoto protokolu je pro každého správce sítě nezbytná.

Protože protokol SMTP je textový, je jeho osvojení podstatně jednodušší než u mnoha jiných protokolů a k přímé komunikaci se serverem SMTP stačí program schopný odesílat data ASCII přes port 25 protokolu TCP/IP, například Telnet.

Pošta je odesílána prostřednictvím protokolu SMTP v transakci, to znamená, že pokud odeslání zprávy není dokončeno v plném rozsahu a bez vygenerování chyby, je zpráva zahozena. RFC 821 popisuje transakci jako třífázovou: určení odesílatele, poskytnutí jednoho nebo více příjemců a následné odeslání samotné zprávy. Je však snazší si transakci SMTP představit jako 5 fází:

  • Podání ruky
  • Odeslat adresu odpovědi
  • Odesílání příjemců
  • Odeslat data zprávy
  • Ukončení transakce

Podání ruky

Po připojení k serveru SMTP na portu 25 musí odesílatel zprávy počkat, až příjemce přijme spojení, a identifikovat se v následujícím formátu:

220 [doména] [informace o službě]
Příklad: 220 example.com Služba je připravena

Odesílatel se pak musí identifikovat příjemci pomocí příkazu HELO.

HELO [doména]
Příklad: HELO example.com

Poštovní servery budou očekávat, že se každý z nich identifikuje pomocí doménového jména, které by mohlo být použito k ověření identity serveru pomocí vyhledávání záznamů MX, nicméně přijímající server nesmí v této fázi odmítnout spojení, i když nelze ověřit identitu odesílatele, a musí tedy odpovědět:

250 [Zpráva]
Příklad: 250 example.com Hello bob at example.com

Kód odpovědi 250 je obecná odpověď ‘OK’, kterou server SMTP oznamuje, že poslední akce byla úspěšně dokončena.

Odeslat odpověď Adresa:

Jakmile oba servery provedou handshake, je transakce SMTP zahájena a my můžeme začít odesílat příkazy na server. Pokud chcete vidět příkazy podporované serverem, odešlete příkaz HELP a server SMTP by měl odpovědět zprávou s podrobnostmi o tom, které příkazy jsou podporovány.

Abychom mohli odeslat zprávu uživateli na tomto serveru, musíme nejprve nastavit adresu pro odpověď. Adresu pro odpověď je třeba zadat jako první, aby bylo možné na tuto adresu nahlásit případné chyby během transakce SMTP. K tomu použijeme příkaz ‘MAIL FROM:’:

POŠTA OD:
Příklad: MAIL FROM:

Všimněte si znaků Menší než a Větší než. Tyto znaky jsou podle RFC 821 vyžadovány, aby obsahovaly samotnou e-mailovou adresu. Pokud je adresa přijata, SMTP vrátí odpověď 250 OK.

Odesílání příjemců

Po nastavení adresy pro odpověď nám SMTP umožní identifikovat příjemce zprávy. K tomu použijeme příkaz ‘RCPT TO:’:

RCPT TO:
Příklad: PŘÍKLAD: RCPT TO:

Chcete-li nastavit více příjemců, stačí tento příkaz zopakovat pro každého příjemce.Pokud příjemce přijme poštu pro tohoto uživatele a může zprávu přijmout, měl by odpovědět zprávou 250 OK. Pokud však poštu pro tohoto uživatele nepřijme, bude odeslána odpověď 550 failure nebo příslušný kód chyby. Pokud obdržíme odpověď 250 OK, můžeme pokračovat v odesílání dat zprávy.

Odeslat data zprávy

Odesílání dat prostřednictvím protokolu SMTP je poměrně jednoduché, avšak formáty zpráv mohou být poměrně komplikované, zejména při odesílání binárních příloh. Pro zahájení odesílání dat bychom měli vydat příkaz ‘DATA’, na který by měl server odpovědět 354 Intermediate reply. tj.:

354 Zadejte zprávu končící “.” na samostatném řádku

Nejjednodušší zprávou, kterou můžeme odeslat, je prostá textová zpráva, která nevyžaduje použití vícedílného formátu zprávy MIME. Všechny zprávy, ať už textové nebo jiné, se ukončují odesláním řádku obsahujícího pouze znak tečky. Před odesláním zprávy lze také odeslat některé informace v záhlaví, například Datum, Předmět, Komu, Cc a Od.

Příklad:

DATA
354 Zadejte zprávu končící “.” na samostatném řádku
Předmět: Zpracování informací o projektu, který se uskutečnil v roce 2012, a o jeho výsledcích: Toto je předmět textové zprávy plánu.
A toto je tělo zprávy prostého textu.

V případě přijetí transakce vrátí server SMTP odpověď 250 OK nebo chybový kód, pokud transakce selhala nebo byla neúplná. Všimněte si znaku tečky na konci řádku těla zprávy, teprve když se znak tečky nachází na řádku samostatně, server přestane naslouchat datům. Pokud by odesílající server odesílal zprávu, která by způsobila předčasné ukončení datové relace, měl by vzhledem k tomu, že zpráva obsahuje na řádku jediný znak tečky, přidat na řádek další znak tečky.

Ukončení transakce

Až do tohoto okamžiku je vše, co bylo odesláno na přijímající server SMTP, považováno za jednorázové. Pokud není příkaz ‘QUIT’ odeslán před uzavřením spojení, cílový server jednoduše odstraní všechna data zprávy, která byla uložena. Původně se tento příkaz používal jako elegantní způsob ukončení spojení, dnes se běžně používá jako symbol ukončené transakce, přičemž mnoho poštovních serverů čeká na příkaz QUIT, než poštu zařadí do fronty pro směrování agentem pro přenos zpráv. Po odeslání příkazu QUIT by měl cílový server odeslat odpověď 221, aby potvrdil dokončení transakce a uzavření spojení.

Pokud se učíte protokol SMTP, doporučujeme vám přečíst si RFC 821, 2476 a 2554. Zejména při čtení RFC 821 byste měli mít na paměti, že od roku 1982 se E-mailové servery výrazně změnily, částečně v reakci na zneužívání spammery.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Každý ví, že spolehlivý server SMTP je klíčem ke správnému doručování e-mailů. Je také dobře známo, že NIKDO už nenabízí SMTP bez ověření nebo pro open relay. ALE STÁLE MŮŽETE ZÍSKAT KVALITNÍ SMTP SERVER ZDARMA PRO SVÉ POUŽITÍ!

Klikněte zde pro váš SMTP SERVER ZDARMA