TechDesk
Drobnohled
N e d ě l e
16.března 2003, 21:33
Publikováno dne:
27.4.1999



na Obsah
UNIX
Windows 9x
Windows NT
Drobnohled
Vaše názory
Archiv



ASCII   MAC   WIN

REKLAMA

Základní principy elektronické pošty (díl druhý)

V minulé části jsem nastínil, jak funguje elektronická pošta. Dnes se naopak budeme zabývat tím, jak elektronická pošta může nefungovat.

Jistě se vám již někdy stalo, že jste odeslali mail a po chvíli, či druhý den jste dostali podivnou zprávu, která byla obvykle kompletně v angličtině, obsahovala nějaká čísla, nepochopitelný text a jako odesílatel byl uveden někdo, komu jste nikdy nepsali, případně někdo, koho neznáte. V tu chvíli jste se stali spokojenými (nebo možná méně spokojenými) příjemci automaticky generované chybové hlášky. (Ještě to také mohl být spam, ale o tom zase jindy.) Pokusíme se podívat, jak takové zprávě porozumět.

Pro studijní účely si můžeme chyby rozdělit do dvou skupin, a to na chyby, které jste způsobili sami, a na chyby, které vznikly v průběhu doručování vinou nějaké nestandardní situace, jakou je třeba výpadek některého serveru.

V první skupině jsou v drtivé většině chyby způsobené chybně uvedenou adresou příjemce nebo odesílatele (tedy chybou vaší). Věnujte pozornost i druhé variantě, kterou zmiňuji (tedy adrese odesílatele). V dnešní době totiž již v rámci ochrany proti spamu bývá kontrolována adresa odesílatele buď na obecnou platnost, nebo na tzv. lokálnost. Mnoho poštovních serverů totiž doručí jedině zprávu, jejíž příjemce nebo odesílatel je serveru znám, tedy je lokálním uživatelem. Platnost adresy příjemce je samozřejmě nezbytná. Tady se nejčasněji chybuje v překlepech, buď běžným prohozením písmen nebo stisknutím třeba klávesy CTRL místo klávesy SHIFT. Znak vložený s klávesou CTRL nemusí být viditelný, ale je samozřejmě překážkou doručení. Některé poštovní programy dokáží vložit doprostřed poštovní adresy i znak generovaný klávesou ENTER. Další, poměrně zřídka se vyskytující, závada může být v tom, že v části adresy před zavináčem se obecně rozlišují velká a malá písmena. Pepa tedy není PEPA! Ale většinou bývá velikost písmen ignorována, záleží na úvaze a názoru správce cílového serveru.

Řešení všech těchto vad je celkem prosté. Stačí ověřit si, že jste zadali adresu správně, případně opakovat zaslání později pro případ, že by závada byla u příjemce. Samozřejmě je možné i to, že cílová adresa byla zrušena. Pak ovšem nezbývá, než abyste navázali spojení jinou cestou.

Druhý případ je nejčastěji zaviněn výpadkem některého spoje na Internetu, nebo ve vnitřní síti příjemce (či odesílatele). Další v pořadí je přeplněný disk příjemce nebo vyčerpání diskové kvóty konkrétního uživatele. To se stává především studentům, ale i klientům providerů, kteří omezují velikost schránek klientů, ale neomezují nijak velikost přijaté zprávy. Protože nemáte žádnou možnost ovlivnit, jak velkou zprávu vám někdo pošle, může se to snadno stát i vám. Obrana tady žádná není. Poslední běžný případ je chybné přesměrování zprávy. (Přesměrování zprávy znamená, že zprávy pro nějakého účastníka jsou doručovány na jinou adresu. Nastavuje jej buď účastník sám, nebo to za něj může udělat správce systému.) Pokud je nová cílová adresa chybně zapsána, zpráva se vám vrátí.

Pro řešení druhého případu si zprávy rozdělíme na další dvě skupiny, chybové hlášky a varování. Chybové hlášky obsahují téměř vždy někde v textu, nebo subjektu slůvko "error" nebo "returned mail". Varovné zprávy obsahují v textu slovo "warning" a dále obvykle nějaké poučení typu "You don�t need to send your message again". Na varovné hlášky skutečně není třeba reagovat, první přijde obvykle po čtyřech hodinách, po které se nepodařilo zprávu doručit, druhá po dni, třetí po třech dnech a pátý den se zpráva vrací (dále se již nedoručuje). Tyto hodnoty jsou typické, ale nejsou nijak uzákoněné, takže se můžete setkat jak s jinými odstupy, tak s úplným vypnutím generování těchto zpráv.

Chybové zprávy znamenají, že zpráva nebyla doručena a systém se o další doručování ani nebude pokoušet. Je na vás, co uděláte. Pokud jste přesvědčeni, že zpráva být doručena měla, je vhodné kontaktovat správce systému, na kterém k chybě došlo nebo správce cílového serveru a žádat je o radu či pomoc. RFC za tímto účelem definuje, že "každá registrovaná doména musí mít zřízeno konto postmaster za účelem správy pošty".

RFC 822
6.3.  RESERVED ADDRESS

          It often is necessary to send mail to a site, without  know-
     ing  any  of its valid addresses.  For example, there may be mail
     system dysfunctions, or a user may wish to find  out  a  person's
     correct address, at that site.

          This standard specifies a single, reserved  mailbox  address
     (local-part)  which  is  to  be valid at each site.  Mail sent to
     that address is to be routed to  a  person  responsible  for  the
     site's mail system or to a person with responsibility for general
     site operation.  The name of the reserved local-part address is:

                                Postmaster

     so that "Postmaster@domain" is required to be valid.

     Note:  This reserved local-part must be  matched  without  sensi-
            tivity to alphabetic case, so that "POSTMASTER", "postmas-
            ter", and even "poStmASteR" is to be accepted.

Teorie tedy praví, že pokud nahradíte jméno, na které nelze něco poslat slovem postmaster, a doménu ponecháte, měli byste se spojit s někým, kdo ví, co a jak, a pomůže vám. Prakticky to naráží na jednu chybu, všechny RFC dokumenty jsou nezávazné a spousta správců je stejně nečte. Navíc některé komerčně dodávané poštovní systémy (Microsoft Exchange) nemají toto konto od výrobce vůbec definováno a jejich správci buď o nutnosti toto konto dodefinovat nevědí, nebo se jim do toho ani nechce. Často se také setkáte s tím, že konto sice existuje, ale nikdo jej nečte. Takže toto není vždy ta úplně správná cesta, nic vám ale nebrání to pro začátek alespoň zkusit. A možná si to přečtou i zákazníci mající zakoupený webhosting a budou se dožadovat u providera nápravy. (Pokud totiž někdo má www adresu www.domena.cz, ale jako kontaktní adresu uvádí "nekdo@provider.cz", je neexistence postmastera téměř jistá.)

Pokud tato možnost selže, můžete se pokusit najít na danou osobu kontakt v nějaké adresářové službě, třeba http://lide.seznam.cz nebo http://www.bigfoot.com. Další rady nemám (a takové jako použít telefon nemá smysl psát).

V chybové zprávě budou řádky obsahující adresu, na kterou nebyla zpráva doručena, a v jejich těsném okolí se bude asi vyskytovat číselný kód složený ze tří číslic. Něco si o něm povíme, protože je velice podobný tomu, který se používá v protokolu http. Ono by bylo asi lepší říci, že ten v http je podobný poště (http prostě převzalo velice osvědčený systém). Tyto kódy jsou určeny především pro strojové zpracování, ale i nám mohou něco zajímavého povědět. Chybové zprávy jsou totiž velice variabilní, odrážejí náladu a třeba i smysl pro humor tvůrce. Proto jsou pro počítač nesrozumitelné a pro ty, kteří nevládnou právě dobře anglicky také. A tady právě nastupuje chybový kód. První číslice udává jakousi kategorii chyb:
1xx � v poště se nevyskytuje, udává, že předchozí příkaz byl přijat, ale očekává se další pokyn, aby se něco mohlo začít dít, případně se používá pro ladicí účely;

2xx � příkaz byl zpracován, může následovat další příkaz, vše proběhlo správně;

3xx � příkaz byl akceptován, ale nebude se hned zpracovávat, nevypadá to, že by něco bylo špatně;

4xx � příkaz nebyl přijat, systém není připraven jej zpracovat, ale jedná se o dočasný stav, pokud bude požadavek opakován později, bude stejný příkaz korektně zpracován;

5xx � příkaz nebyl a nikdy nebude přijat.

Asi jste pochopili, že chybové jsou až dvě poslední hlášky. Přesná hranice mezi nimi není, např. nedostatek místa na disku hlásí některé systémy jako chybu třídy 4, jiné jako 5.

Druhá číslice udává typ chyby:
x0x � syntaktická chyba, neznámý příkaz;

x1x � informace, nápověda;

x2x � chyba (stav) se vztahuje ke spojení;

x5x � chyba se vztahuje k funkci poštovního systému.

Třetí číslice dále zjemňuje chybu, ale není definována takto konkrétně. Na závěr vybírám několik nejdůležitějších stavových hlášek:

500 Syntax error, command unrecognized
(neznámý příkaz)

501 Syntax error in parameters or arguments
(neznámý parametr)

502 Command not implemented
(příkaz není implementován)

251 User not local; will forward to
(Pošta uživatele je přesměrována na jinou adresu, nejedná se o chybu, ale znamená to, že je nutné poštu posílat na novou adresu. Většina poštovních programů to udělá sama, a potom chybovou hlášku vůbec neobdržíte.)

450 Requested mail action not taken: mailbox unavailable
[E.g., mailbox busy]
(např. došlo místo na disku)

550 Requested action not taken: mailbox unavailable
[E.g., mailbox not found, no access]
(Uživatel není znám, došlo místo v podání jiného systému, ale také třeba odešel disk.)

551 User not local; please try
(Uživatel není náš, zkuste jinou adresu, my se o doručení starat nebudeme. V tomto případě bude zpráva téměř jistě vrácena a budete se o ni muset postarat sami.)

452 Requested action not taken: insufficient system storage
552 Requested mail action aborted: exceeded storage allocation
(Opět varianty vyčerpání volného místa na disku.)

A ukázky chybových zpráv:

------- Failure Reasons  --------

User  not listed in public Name & Address Book
xxxxxxxx@dxxxxxxxxxk.com


------- Returned Message --------

Toto generuje Exchange. Jak vidíte, číselné kódy chybí. Kdo by se patlal s jejich implementací. (Toto neplatí pro dostatečně nové verze.) Chyba znamená neexistujícího uživatele.

-------

Delivery has failed on the enclosed message for the following
reasons reported either by the mail delivery system on the mail
relay host or by the local TCP/IP transport module:

   550 
    ... User unknown Your original mail message follows: --------------------------------------------------------
Ukázka selhání doručení generovaného Pegasus mailem. Tady byla chybná adresa.

-------

The original message was received at Tue, 16 Mar 1999 22:37:29 +0100
from poli.feld.cvut.cz [147.32.193.233]

   ----- The following addresses had permanent fatal errors -----


   ----- Transcript of session follows -----
... while talking to lxxis.lxxis.cz.:
>>> RCPT To:
<<< 550 ... User unknown
(Tady je výňatek podstatné části komunikace s cílem.)
550 ... User unknown
(Tohle je definitivní závada po vyhodnocení předchozích řádek systémem.)

(Tady následuje část pro strojové zpracování.)
Final-Recipient: RFC822; xxxxx@loxxs.cz
Action: failed
Status: 2.0.0
Remote-MTA: DNS; lxxxs.lxxxs.cz
Diagnostic-Code: SMTP; 250 HAA01267 Message accepted for delivery
Last-Attempt-Date: Wed, 17 Mar 1999 08:35:00 +0100

Ukázka chyby doručení generovaná programem sendmail. Tato zpráva se nejvíce přibližuje standardu pro chybové hlášky a je dokonce i strojově zpracovatelná. Opět se jedná o chybu v adrese.

-------

Message has spent too much time being processed at this host

fxxxzt.pxxt.cz unable to deliver mail to the following recipient(s):

petr.xxxxk@pxxxt.cz

The rejected message follows:

Altavista mail, opět malinko nestandardně a v zásadě nesrozumitelně. Jednalo se o zrušení konta danému uživateli, zatímco tohle vypadá spíše na nějakou ztrátu spojení.

-------

Hi. This is the qmail-send program at email.seznam.cz.
I'm afraid I wasn't able to deliver your message to the following
addresses. This is a permanent error; I've given up. Sorry it didn't work
out.

:
This message is looping: it already has my Delivered-To line. (#5.4.6)

--- Below this line is a copy of the message.

Tohle nám vygeneroval qmail na seznamu, jedná se o chybné přesměrování pošty. Uživatel si do přesměrování uvedl vlastní adresu, takže se pošta zacyklila. Pozná se to podle slůvka "looping" které při této chybě hlásí snad všechny systémy.


The original message was received at Thu, 11 Mar 1999 11:21:42 +0100 (MET)
from max.feld.cvut.cz [147.32.192.36]

   ----- The following addresses had permanent fatal errors -----


   ----- Transcript of session follows -----
... Deferred: Connection timed out with mail.ixxxxxxxxxe.cz.
Message could not be delivered for 5 days Message will be deleted from
queue

Final-Recipient: RFC822; rxxxxxxl@mail.fxxxxxxxt.cz
Action: failed
Status: 4.4.7
Remote-MTA: DNS; mail.fixxxcz
Last-Attempt-Date: Sun, 21 Mar 1999 22:43:28 +0100

Tady opět sendmail, ale s jinou chybou. Tato zpráva byla vrácena po pěti dnech pro nedoručitelnost. Důvodem bylo, že se nepodařilo ani jednou udržet spojení s cílovým strojem, spojení k němu prochází příliš přetíženou části Internetu, nebo je cílový stroj chybně nakonfigurován. Nejpravděpodobnější ale je, že někdo posílal mnoha megabytový dopis na adresu, kam se nemohl připojit ani přes atp. Navíc je z diagnostické části vidět, že pošta byla přesměrována.

Ještě si zamoralizuji na téma velkých mailů. Elektronické pošta je určena pro přenos krátkých textových zpráv. Zasílání instalačních disket, obrázků a videoklipů je sice velice šikovné, protože od vás to odteče na server providera hned, cíl si to také (možná) stáhne z lokálního serveru bez problémů. Provider má jistě místa na discích spousty. Takže kde je něco škodlivého? Problém je v přenosu samém. Každý server umí standardně odesílat X dopisů najednou, např. 25. Ostatní musí čekat ve frontě, až na ně přijde řada. Odeslání velkého souboru, navíc tak neefektivní metodou jako je poštovní přenos (o tom blíže příště), může trvat desítky minut nebo i celé hodiny. Více takových souborů může zablokovat server tak, že jinak blesková pošta se opozdí o hodiny. Navíc je vysoká pravděpodobnost, že spojení takto dlouho trvající spadne a přenos bude muset začít znovu od začátku (a to i několikrát). A ve vůbec nejhorším případě, pokud příjemci dojde místo v poštovní schránce, přenos se bude pokoušet o opakování mnohokrát a mnohokrát. Proto se může stát, že správce, zcela oprávněně, smaže zprávu z fronty a ani o tom nedá odesílateli vědět. V některých systémech ani není nějak jednoduše možné zjistit, komu vlastně ten velký soubor patří (patřil). Stejně tak to otravuje příjemce, protože pokud je připojen třeba slabou linkou, má ji zablokovanou a ani nemá moc možností s tím něco dělat, protože najít toho, kdo vám tam tlačí něco velkého není snadné a kontaktovat ho může být zcela nemožné. Proto vřele nedoporučuji používat elektronickou poštu na něco takového, zvláště když pro tyto účely byly vynalezeny domovské stránky, FTP, scp a podobně. Soubor, který někomu chcete nabídnout, je tam možné zveřejnit a jemu zaslat jen adresu.

To by pro dnešek mohlo stačit. Příště se můžete těšit na popis toho, jak se posílá diakritika (proč je to tak složité, resp. proč je tak často nečitelná). Uvítám jakékoliv připomínky k tomuto textu a případně i náměty, co by vás zajímalo v dalších částech.

Dan Ohnesorg (dan@feld.cvut.cz) - 27.4.1999

Zaujal Vás tento článek? Chcete nám k němu něco sdělit? Neváhejte a sdělte nám svůj názor 


S O U V I S E J Í C Í   O D K A Z Y . . .

Základní principy elektronické pošty - 26.2.1999
Dan Ohnesorg
Elektronické pošta je určena pro přenos krátkých textových zpráv. Zasílání instalačních disket, obrázků a videoklipů je sice velice šikovné, ale odeslání může serverům trvat desítky minut či celé hodiny.

Sdělte nám svůj názorVytiskněte článek na tiskárněPošlete článek kolegovi emailemDalší články autora
Hodnocení: 5.5 / 10

A K T U Á L N Ě:

Baldachýn: Potter vycpává koťátka!

COMICS: Čím jedeš?

Dnes naposled

Velké sportovní finále

Jak jsem poštval kamarádku na Václava Klause

Rok 2002 v hudbě - část druhá

Místo hada Karel Gott

Povídky nevidomých: Vyvařené zuby

Nenechte sebou manipulovat

Existují jen multiplexy?

HREJ OVER!

D R O B N O H L E D:

Jak pracuje klávesnice

Síťová myš � NetMouse

Počítač na Internetu? Ale kde na Internetu?

Naučte se Python aneb Jak na objekty

V náruči Microsoftu aneb Nebraňte vývoji?

Naučte se Python aneb Jak na výjimky

 

 





- nahoru - Copyright (c) 1998-1999 Seznam - Ivo Lukačovič, uvedení autoři článků a dodavatelé
obsahu, všechna práva vyhrazena