reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Vlastní SMTP server - konečně spolehlivé odesílání emailů

18.7.2005, Eagle , článek
Vlastní SMTP server - konečně spolehlivé odesílání emailů
Také už se vám stalo, že odesílání emailů ne a ne fungovat? Drtivá většina uživatelů Internetu používá odchozí SMTP server svého poskytovatele připojení či některého z freemailů. Tyto bývají často přetíženy, nefungují, občas nějaký ten mail "zapomenou" doručit. Víte, že těmto problémům je možné předejít vytvořením si vlastního SMTP serveru?
Něco málo k funkci pošty

Technologie skrytá za odesíláním a doručováním elektronické pošty (emailů) spoléhá na dva základní prvky - servery SMTP a POP3.



SMTP je zkratkou pro Simple Mail Transfer Protocol. Vždy, když odesíláte email, se váš poštovní klient připojuje k SMTP serveru, případně se autorizuje a dále mu předá adresy odesílatele, příjemce, název zprávy, text a přílohy. SMTP pak podle adresy určí, kam má email poslat. Tak například pokud byste měli emailovou adresu martina.novakova@seznam.cz, pak podle onoho seznam.cz se určí, na jakou adresu má email odejít (příslušná IP adresa je zjištěna kontaktováním DNS serveru, který "vymění" slovní jméno za IP - například seznam.cz má nyní adresu 212.80.76.18). Email putuje k cílovému serveru, který si ho podle části adresy před jménem serveru již zatřídí do té správné škatulky (martina.novakova@seznam.cz je tak schránka Martiny Novákové).

Následně již zbývá poslední fáze - aby si uživatel email vyzvednul. Jeho poštovní klient v tomto případě kontaktuje přes protokol POP3 (Post Office Protocol 3) emailovou schránku, autorizuje se a požádá o předání doručených emailů - jakmile je stáhne, obvykle je ze schránky smaže, aby zůstala dostatečně volná.

Vlastní SMTP - proč ne?

Ze schématu výše je vidět, že odesílání a přijímání pošty spolu vůbec nesouvisí. V praxi je možné odeslat email z prakticky jakékoli adresy - mojí, vaší, vašeho souseda, dokonce i z neexistující adresy. Systém SMTP se spoléhá na to, co mu odesílatel sdělí. Díky tomu je možné odesílat email odkudkoli, přesto bude pořád vypadat věrohodně a příjemce nic nepozná (no dobře, může to poznat zobrazením hlavičky, ale kdo kontroluje u každého emailu, zda má tu správnou hlavičku?).



Hlavička emailu často obsahuje IP adresy odesílatelů (zde 213.220...)

Nyní trošku z jiného soudku. Veřejně dostupné SMTP servery obsluhují obrovská množství odesílatelů - řádově stovky až tisíce v jednom okamžiku. To samozřejmě klade vysoké nároky na použité hardwarové vybavení a rychlost linky. Protože ne vždy jsou podmínky ideální, občas server odmítne odesílat či dokonce spadne a několik minut či hodin není přístupný. Ještě horším případem je situace, kdy server váš email přijme, tváří se, jako by ho odeslal, ale v praxi ho někde zahodí a k příjemci nikdy nedorazí. Sci-fi? Nikoli, takovéto problémy měl před několika lety například na Atlas.cz.

Protože je možné odesílat emaily odkudkoli, je samozřejmě možné vytvořit si SMTP server na vlastním počítači. Ve schématu výše by se v takovém případě změnilo pouze to, že odesílatel by nekontaktoval například mail.seznam.cz (SMTP server Seznamu), ale svůj vlastní. Tím odpadnou jakékoli problémy se spolehlivostí. Jaké to má nevýhody? Prakticky jedinou je tzv. open relay. Veřejně dostupné servery, jako například ten Seznamu, jsou chráněny proti neautorizovanému použití? Proč? Kdysi, v dobách několik let zpátky (ještě asi tak před pěti lety) bylo poměrně populární něco, čemu se říkalo email bombing. Celá věc spočívala v tom, že někomu, koho nemáme rádi, jsme zaslali tisíce emailových zpráv, které on pak stahoval klidně několik hodin. Existovaly na to speciálně vytvořené programy (známý AEnima), které se připojovaly na SMTP servery třeba v deseti paralelních přístupech a ještě nechaly zprávy odesílat v kopiích (ty vytváří až SMTP server). Tím tyto servery extrémně zatěžovaly. Provozovatelé na to reagovali tak, že zavedli určité restrikce - například server Seznamu byl zpočátku omezen na odesílatele s emailovou adresou @seznam.cz, později dokonce začal vyžadovat kompletní autorizaci k @seznam.cz emailové schránce, kterou si samozřejmě ověřuje na správnost. Poskytovatelé připojení k Internetu zase zvolili cestu eliminace IP adres - jakmile se snažíte odeslat email z IP adresy, která provozovateli nepatří (tj. ze sítě jiného provozovatele), server odeslání odmítne.

PostCast Server Free Edition

Jednoduchým SMTP serverem dostupným pro koncové uživatele zdarma je PostCast Server Free Edition. Stáhnout si ho můžete na adrese http://www.postcastserver.com/.


Je to slušně vybavený program, který na disku zabere asi 15 MB. Částečně funguje i jako poštovní klient, protože umí odesílat emaily (přijímat ale už ne). Hlavní výhodou proti například konkurenčnímu Free SMTP Serveru je ochrana proti open relay na bázi eliminace IP adres a mnohem větší rozsah konfigurovatelnosti. Vlastně ani nevypadá jako nějaké amatérské řešení, naopak.



Ihned po nainstalování a spuštění se zapne krátký konfigurační průvodce, který vám navrhne zablokování přístupu na pouze vybrané IP adresy. Jakmile by se k serveru snažil připojit někdo s jinou adresou, ten ho odmítne. To rozhodně zapněte, jinak by se váš počítač mohl stát spam centrem (spam je v podstatě novodobý problém stejného charakteru jako email bombing) - odesílatelé zvenčí (z Internetu) by mohli zjistit přítomnost služby a začít jí zneužívat bez vašeho vědomí.



Na konci průvodce poradí, jak si nastavit poštovního klienta. Tím prakticky vše zprovozníte. Kdyby něco nefungovalo, je zde nabídka Tools - Settings.


Tam můžete nastavit DNS server. Program se ho standardně snaží zdetekovat (a to se mu i daří), pokud by to ale nešlo, můžete zadat adresu manuálně. Standardně používaný DNS lze v operačním systému Windows zjistit kliknutím na Start - Nastavení - Síťová připojení - název připojení - Podpora - Podrobnosti (platí pro Windows XP, v jiných verzích se může cesta lišit). Můžete zde nastavit i parametry vašeho SMTP serveru - zde je dobré ponechat 127.0.0.1 a port číslo 25. Zároveň se dá ovlivnit rychlost odesílání. Program totiž přijme od vašeho klienta zprávu, ale nemusí jí odeslat okamžitě. Může je odesílat například manuálně (až po odsouhlasení) nebo ve stanovený čas. Pokud chcete zprávy zpracovávat ihned, zvolte Immediately a pauzu nastavte na nulu. Po dokončení konfigurace je možné program minimalizovat do system tray, takže nepřekáží.

Nyní už stačí jen nakonfigurovat vašeho poštovního klienta. To se liší klient od klienta, takže zde nemohu poskytnou nějaký univerzální návod, kde co najít.




Jakmile zjistíte, kde se nastavuje SMTP, zadejte adresu na 127.0.0.1 (či adresu, kterou jste v PostCast zvolili). 127.0.0.1 je tzv. localhost, tj. adresa, kdy počítač kontaktuje sám sebe.

Nyní už jednoduše stačí vytvořit email a odeslat.



V PostCast se objeví na server přijatá zpráva, která se odešle dle zvolených kritérií - buďto automaticky (ihned, ve zvoleném čase...) nebo manuálně po stisknutí tlačítka Start. Jakmile je zpráva odeslána, program v textovém souboru vytvoří protokol o průběhu.




V něm vidíte, jaké servery byly kontaktovány a v kolik hodin.

Reakční doba vlastního SMTP serveru je dle očekávání - email dorazí prakticky ihned. Efektivně tak ukončí vaše problémy s odesíláním emailů.

Poznámka na závěr pro naše čtenáře: V článku použitou emailovou adresu již mnoho měsíců nepoužívám, protože na ní chodí asi miliarda spamů denně. V článku posloužila jen pro ukázku, v žádném případě z ní nebudu odpovídat.

reklama