![]() |
Přílohy zásilek |
![]() |
Mail-systém v Kaskádě | Zatoulané zásilky - jak se dopátrat příčiny |
![]() |
Problematiku formátování textu je potřeba dobře pochopit, abyste docílili požadovaných výsledků při odesílání zásilek a abyste pochopili u příchozích zásilek, proč se zobrazují určitým způsobem.
Veškeré informace v této kapitole se týkají vlastního "těla" zásilky, tedy "hlavního textu" zobrazovaného v prohlížeči zásilky v ploše karty Zásilka Adekvátní prostor pro "hlavní text" je v každé e-mailové klientské aplikaci (MS Outlook...).
Přílohy zásilky jsou zcela jiným tématem, neboť jsou to samostatné datové soubory, které jsou prostřednictvím zásilky pouze přepravovány, ale jejich prohlížení (editaci) zajišťují jiné programy, instalované na uživatelském počítači, určené pro práci s příslušným druhem souboru (podle přípony jeho jména).
Pokud jde o zásilky "uvnitř firmy", tedy mezi jednotlivými uživateli Kaskády, není co řešit. Odesílateli i příjemci se zobrazí formátovaný text stejně (tak jak jej odesílatel vytvořil), ať už bude použit kterýkoliv způsob formátování.
Také u zásilek doručených prostřednictvím Internetu uživatelům Kaskády v jiné firmě (např. od vás na HotLine pracoviště podpory Kaskády ... ) je jistota shodného zobrazení.
V těchto případech může docházet k různým situacím, což vyplývá z následující kapitoly.
Se zobrazením formátovaného textu příjemcům v Internetu to není vůbec jednoduché.
Důvod je především v tom (ačkoliv to běžnému člověku přijde neuvěřitelné), že e-mailová komunikace není ani zdaleka exaktní disciplínou, ve které by platila jednoznačná a všemi respektovaná pravidla. Existuje samozřejmě řada doporučení a konvencí, které se tvůrci software (včetně autorského týmu Kaskády) snaží respektovat a aplikovat, bohužel ne vždy zcela důsledně a správně.
Prostý text bez formátování byl původně jedinou formou obsahu těla zásilky:
I dnes je prostý text základem, na kterém je nutno stavět. Pokud nevíme, jaký systém používá příjemce naší zásilky, pak použitím prostého textu nic nezkazíme, jemu se určitě správně zobrazí.
I v zásilkách s formátovaným textem (viz. dále) by mělo být vždy vloženo jako alternativa shodné sdělení převedené do prostého textu. Kaskáda to dělá, ale řada e-mailových systémů bohužel toto doporučení ignoruje.
Podle obecně platných doporučení může zásilka ve svém "tělu" obsahovat příslušné sdělení v několika variantách, v různých formátech (prostý text, richtext, html, ...).
Tyto varianty mají být uspořádány určitým způsobem, od nejjednodušších (prostý text) ke složitějším, přitom základní prostý text by mezi nimi neměl chybět.
Poštovní SW u příjemce zásilky propátrá strukturu zásilky, zjistí jaké alternativy obsahuje, v rámci své logiky něco nějak zobrazí. A začíná být "veselo", protože určitou konkrétní zásilku, odeslanou více příjemcům, může každý z nich vidět poněkud jinak.
Pokud např. odesílací SW uživateli umožní psát ve formátu HTML, ten vloží do zásilky a ignoruje potřebnost vložení alternativního prostého textu, a pokud e-mailový software příjemce není na práci s HTML formátem zařízen, je zde samozřejmě problém.
Kaskáda podporuje 3 formáty textu (prostý text, RTF, HTML), každý má své výhody i nevýhody.
Formát určil odesílatel "z vnějšího světa", Kaskáda při vkládání zásilky do databáze provedla analýzu a připravila zásilku pro zobrazení v prohlížeči.
Formát určuje uživatel Kaskády, který zásilku vytváří, volba je k dispozici v prohlížeči zásilky, v kartě Možnosti.
Jak bylo řečeno výše, jde o základní variantu, zcela dostačující pro jednoduchá sdělení
Formát RTF je obecně velmi rozšířený formát textu, podporovaný mnoha textovými procesory, i samotným jádrem MS Windows (zobrazovací a tiskové komponenty ...).
Kaskáda využívá tento formát pro uložení všech možných textů u objektů (interní poznámky, externí texty pro tisk dokladů ...) i jinde. Proto je tento formát textu Kaskádou také podporován v rámci alternativ u zásilek.
Problémem u tohoto formátu je fakt, že není právě vhodný pro zobrazení ve webových aplikacích (různé webové přístupy k poštovním schránkám) a řada poštovních systémů tento formát ignoruje. S tím se Kaskáda vypořádává tím, že text v RTF formátu vkládá do zásilky jako přílohu (namísto alternativního těla), aby pro příjemce byl tento text alespoň jako příloha dostupný.
Hlavní výhodou tohoto formátu je jeho použitelnost ve webových aplikacích a podpora ze strany firmy Microsoft. Pro správné zobrazení html textu je vyžadována instalace IE8 (Internet Explorer verze 8) a vyšší.
Pro práci s HTML zásilkami obecně většina klientů nepracuje s hlavičkou (<head>), ale pouze s tělem (<body>) a v něm definuje styly (formátování).
Také Kaskáda od verze 19.02 řeší formátování zásilek nastavením stylu v tagu <body> a navíc v tagu <p> určeném pro odstavce a naopak přestává používat definice stylu v hlavičce.
Níže uvedený kód je navržen vývojovými pracovníky Kaskády a je obsažen přímo v kódu aplikace. Pokud vám toto formátování vyhovuje (podle názoru vývojářů by mělo vyhovovat v naprosté většině případů), uživatelskou definici neupravujte a nechte vše tak jak je a to jak na úrovni globální konfigurace, tak na úrovni uživatelské konfigurace.
<body style="font-family: %KaskFontFamily; font-size: %KaskFontSize;">
<p style="font-family: %KaskFontFamily; font-size: %KaskFontSize;">
<!--KaskBody-->
</p>
%KaskPodpis
</body>
<!--KaskBody-->
Tento parametr slouží pouze pro situaci, kdy uživatel v rámci zásilky během její editace mění formát
textu z RTF nebo TXT na HTML. V této situaci dosavadní text zásilky vloží na místo zástupného parametru
<!--KaskBody-->.
Pokud vytváříte vlastní definici formátu, parametr <!--KaskBody--> v kódu vždy použijte!
%KaskPodpis
Tento parametr program nahradí HTML popisem v situaci,
kdy má uživatel zapnuté automatické vkládání podpisu do
zásilky.
Pokud automatické vkládání podpisu do zásilky zapnuté nemáte, program při aplikaci tohoto formátu na
místo tohoto parametru vloží prázdný znak.
%KaskFontFamily
Tento parametr program nahradí typem písma nastaveném v
uživatelských preferencích.
Pokud tento parametr ve vlastní definici formátu nepoužijete nebo ho nahradíte konkrétním typem písma v
tagu <font>, nebude při aplikaci tohoto vašeho formátu brán zřetel na nastavení fontu v
uživatelských preferencích.
%KaskFontSize
Tento parametr program nahradí velikostí písma nastavenou
v uživatelských preferencích.
Pokud tento parametr ve vlastní definici formátu nepoužijete nebo ho nahradíte konkrétní velikostí písma
v tagu <font>, nebude při aplikaci tohoto vašeho formátu brán zřetel na nastavení velikosti písma v
uživatelských preferencích.
Pokud potřebujete pro nově vytvářené zásilky změnit pouze výchozí typ fontu nebo velikost písma, pak
definici formátu těla zásilky neupravujte (tzn. ponechte výchozí definici), ale změňte pouze typ písma a
velikost písma v uživatelských preferencích.
POZOR: Uživatelské nastavení fontu a velikosti písma nemusí být aplikováno, pokud nejsou upravené HTML
šablony podle nové definice (viz. odstavec Kdy
se definice HTML formátování zásilky uplatní).
Pokud vám výchozí definice nevyhovuje, máte
možnost nahradit ji definicí svou vlastní a to buď globálně pro celou firmu nebo toto nastavení ponechat na
uživateli.
POZOR: K definování tohoto formátu je potřeba znát alespoň základy HTML a velmi dobře pochopit chování
Kaskády v této oblasti. Jde o zásadní zásah do formátování HTML zásilek a špatně vytvořená definice může
velmi zkomplikovat vaši práci s HTML zásilkami.
Možnost globálního nastavení definice pro celou firmu má uživatel s oprávněním Administrátor mail-systému a vrcholový administrátor v konfiguraci mail-systému na kartě Obecné v podkartě Definice těla pro HTML zásilky.
Zde je navíc možné určit, zda dané nastavení platí
"natvrdo" pro všechny uživatele (běžný uživatel nebude moct definovat formát ve svém nastavení) nebo
jen pro ty, kteří toto nastavení nemají v uživatelských preferencích nastavené.
Tip: Pokud není definice vyplněna a administrátor nastaví volbu "Použít natvrdo pro všechny uživatele", pak bude program používat výchozí definici aplikace pro všechny uživatele, bez ohledu na to, zda tito uživatelé dosud měli ve své konfiguraci nastaven nějakou individuální definici.
Různá nastavení u jednotlivých uživatelů nedoporučujeme, protože vzhled zásilek by měl být v rámci firmy jednotný. Přesto pokud opravdu potřebujete definici upravit u každého uživatele zvlášť, pak
uživatel s oprávněním "Administrátor uživatelů a skupin" může v kartě Administrace uživatele v podkartě Základní vlastnosti v boxu "Definice těla HTML zásilky" upravit definici konkrétnímu uživateli nebo
běžný uživatel si může sám v menu Definice těla HTML zásilky upravit svou vlastní definici.
v kartěDefinice se uplatní v situaci, kdy
odpovídáte na zásilku bez použití šablony
v prohlížeči zásilky na kartě Možnosti přepnete formátování textu zásilky z Prostý nebo RTF na formát HTML nebo
v prohlížeči zásilky na kartě Zásilka kliknete v panelu nástrojů na tlačítko Reset
V ostatních případech bude formátování převzaté ze šablony HTML zásilky, proto doporučujeme po instalaci verze 19.02 upravit formátování všech HTML šablon dle postupu uvedeném v úpravě UPK-19-0017.
Tvorbu šablony proveďte v Konfiguraci druhů (tříd). Vlevo ve stromě druhů se napozicujte na druh "Zásilka" a v
pravé části na kartu Šablony.
Dále se postup liší podle situace, kterou řešíte.
V praxi lze rozlišit asi 3 základní situace, které mají vliv na způsob vytváření nové HTML šablony
Vytváříte novou HTML šablonu (její obsah teprve budete vytvářet)
pomocí tlačítka (Nový) vyvolejte vytvoření
nové šablony (je jedno jakou šablonu zvolíte)
Pokud zásilka není v HTML formátu, přepněte formát na kartě Možnosti
na kartě Zásilka stiskněte tlačítko Reset v panelu nástrojů HTML editoru, tím vyprázdníte HTML text a vložíte definici formátu těla zásilky.
pokud nevytváříte prázdnou šablonu, tak zapište a naformátujte text zásilky
novou šablonu uložte
Šablonu ve formátu TXT nebo RTF upravujete na šablonu ve formátu HTML
Vytváříte novou HTML šablonu jako kopii šablony v jiném formátu
pomocí tlačítka (Nový) vyvolejte vytvoření
nové šablony, v dialogu pro výběr šablony vyberte požadovanou šablonu v jiném formátu
na kartě Možnosti přepněte formát na HTML, tím se ztratí veškeré dosavadní formátování
na kartě Zásilka proveďte úpravu formátování textu šablony do takové podoby, do jaké si přejete aby byla
novou šablonu uložte
Kaskádní přijímač zásilek, který přebírá zásilky od poštovního serveru a vkládá je do databáze, provádí rozbor každé zásilky a rozhoduje o tom, jak jí do databáze zaznamenat.
Následně pak uživatel zásilku otevírá v prohlížeči zásilky, tento prohlížeč se chová podle toho, jaké informace o zásilce v databázi nachází.
Z každé přijatá zásilky se Kaskáda snaží získat
V každé zásilce by sdělení ve formě prostého textu mělo být obsaženo, ale bohužel v některých případech tomu tak není.
Pokud v zásilce žádná "formátovaná alternativa" obsažena není, pak jediným použitelným formátem je prostý text, prohlížeč ani nenabídne žádnou jinou variantu.
Pokud jde o zásilku, která byla vytvořena v jiné instalaci Kaskády, hledá se speciálně pojmenovaná příloha s textem ve formátu RTF a pokud
je takové příloha nalezena, považuje se za formátované tělo zásilky a nebude pro uživatele zobrazena jako příloha,
není taková příloha nalezena, pokračuje rozbor stejně jako u jakékoliv "cizí" zásilky.
Pokud je v zásilce pouze jednoduché tělo s prostým textem, zaznamená se do databáze jako prostý text.
Pokud jsou v zásilce alternativní obsahy, pak
analyzuje se jejich seznam a hledá se "srozumitelný formát", tedy HTML nebo RTF,
pokud je takový formát nalezen, je zaznamenán do databáze a zásilka označena příznakem příslušného formátu,
v každém případě je mezi variantami také vyhledáván prostý text a i ten je samostatně zaznamenáván do databáze.
Svět internetu a elektronických zásilek je opravdu rozmanitý a často nevyzpytatelný.
E-maily jsou produkovány z mnoha a mnoha systémů a stejně tak do mnoha systémů přijímány. Zdaleka ne všichni respektují příslušná technická doporučení a standardy, takže může vznikat řada situací, kdy e-mail je čitelný pouze s potížemi, často kvůli použití různých znakových sad atd.
Znakovou sadu (tzv. charset) si lze zjednodušeně představit jako tabulku, ve které je každému znaku (písmena, číslice, spec.znaky) přiřazeno číslo (neboť v počítači je vše převedeno na nuly a jedničky, tedy čísla), které tento znak představuje.
Je jich mnoho, v běžné praxi se v naší zemi setkáváme cca se čtyřmi až šesti.
Znaková sada v českých verzích MS Windows se nejčastěji označuje jako CP1250, přitom
Obecně lze říct, že lze použít jakoukoliv znakovou sadu, pokud je v zásilce (v hlavičce každé její jednotlivé části, neboli partu) informace o příslušné znakové sadě zaznamenána.
Pokud tato informace chybí, předpokládá se, že je to sada ISO-8859-1, bohužel ale toto pravidlo často splněno není a při dekódování přijaté zásilky pak dochází k problémům.
Pro dekódování nekorektních příchozích zásilek je v Kaskádě k dispozici tento údaj, jenž je součástí každé zásilky, je zobrazen (a lze přepnout) v kartě Možnosti.
Tento údaj je v rámci příslušné zásilky součástí rozhodovacího algoritmu při dekódování jejích jednotlivých částí (viz. dále).
Inicializace tohoto údaje probíhá následovně
Následně (u existující zásilky přijaté z internetu) může uživatel tento údaj změnit v prohlížeči Zásilky klávesovou zkratkou <Ctrl+X> nebo volbou Dflt.charset v kartě Možnosti a přitom dojde k opakovanému rozebrání zásilky v "nové situaci", tedy možná také s "novým výsledkem".
Při rozebírání Kaskády, resp. každé její části (tzv.partu) se musí program rozhodnout, jakou znakovou sadu předpokládá na vstupu (část přijaté zásilky), aby jí převedl na výstup, tedy do sady CP1250 pro uložení "rozebraného textu" do databáze.
Pokud je v hlavičce příslušné části informace o znakové sadě uvedena, pak je to jednoznačné, o dalších náhradních rozhodovacích algoritmech (viz. dále) není potřeba uvažovat.
Pokud v hlavičce příslušné části informace o znakové sadě chybí, začne se Kaskáda opírat o následující algoritmus:
pokud je její default charset nastaven na hodnotu "Automaticky dle logiky aplikace", pokusí se použít takovou znakovou sadu, která v příslušné zásilce figuruje u pole "Věc" nebo u pole "Od koho",
jinak je v hlavičce konkrétní default charset (znak.sada) a program jej použije.
Takto zjištěnou znakovou sadu program chápe jako sadu, v níž je zaznamenána příslušná (nekorektní) část zásilky a podle toho dekóduje do sady CP1250.
Výše popsané principy se kromě vlastního těla zásilky týkají i textových příloh, především jde o soubory s příponou TXT, HTM, HTML.
U ostatních příloh se s žádnými znakovými sadami nepracuje.
Pokud se nějaká textová příloha dekóduje nesprávně, není nutno měnit default charset celé zásilky, stačí při otevírání přílohy nebo volání funkce Uložit jako soubor přidržet klávesu <Ctrl> a tím docílit vyvolání nabídky seznamu znakových sad. Zde stačí vybrat některou sadu z nabídky a program ji (v případě, že příloha nemá pevně určený charset) použije přednostně.
Uživatel obvykle očekává, že se v prohlížeči zobrazí "nejvyšší formát", tedy např. HTML text u zásilky doručené v tomto formátu. Některé programy ( MS Outlook ...) se tak i chovají, má to ale svá úskalí a z pohledu bezpečnosti to může být velký problém (viz. např. MS Outlook podporuje prohlížení e-mailů v kódu HTML a ten se standardně zobrazuje jako první. Co to znamená? Velké nebezpečí průniku virů a červů pomocí prvků ActiveX. Velká slabina tohoto poštovního klienta je, že nelze nastavit formát zobrazované zprávy.)
Kaskáda se proto chová následovně:
Zásilku, která obsahuje pouze prostý text, zobrazí jako prostý text a není co řešit.
Zásilku, která obsahuje formátovaný text RTF, zobrazí v tomto formátu a nic víc neumožňuje.
U zásilky, která obsahuje formátovaný text HTML záleží na nastavení preferencí přihlášeného uživatele (případně na "zamčené konfiguraci" kterou provedl administrátor Kaskády):
Pokud je povoleno (nebezpečné) okamžité zobrazení HTML zásilek, zobrazí se v tomto formátovaném textu,
Pokud není povoleno (to je doporučené chování) okamžité zobrazení HTML zásilek, zobrazí se varianta prostého textu, která byla v zásilce (pokud v zásilce text nebyl, zobrazí se "prázdná plocha") a nad textem světle modré široké tlačítko pro přepnutí do zobrazení formátovaného textu.
Záleží na tom, v jakém formátu je zásilka uživatelem vytvořena.
Pokud chcete provést jednoduchý pokus a ověřit si, jak vypadá zásilka, kterou odesíláte, pak ji odešlete (případně k adresátům přidejte) na nějakou svoji adresu, např. na veřejném serveru, do které vstupujete přes webové rozhraní apod.
Do těla internetové zásilky se zaznamená tento text, žádná alternativa.
Zaručeně totéž co odesílatel
Kaskáda do zásilky vloží tento text ve dvou podobách:
Důvodem, proč není text vložen jako "alternativa obsahu" ale je z něj vytvořena příloha, je fakt, že RTF formát řada poštovních programů nepodporuje "jako alternativní obsah", ale samozřejmě jako přílohu jej příjemci nabídne.
Tento prostý text vytvoří Kaskáda automaticky z textu formátovaného (vytvořeného uživatelem) a to tak, že odstraní veškeré formátování.
POZOR: vizuálně se takový text může od formátovaného originálu podstatně lišit.
Jako obsah zásilky uvidí prostý text tak, jak jej "očištěním od formátovacích informací" vytvořila Kaskáda.
Jako jednu z příloh (možná jedinou, pokud uživatel nic nepřiložil) uvidí "dokument" s názvem KRichBody.rtf, kliknutím na tuto přílohu otevře program určený na jeho počítači k práci s RTF-formátem a přečte si zprávu v takové podobě, v jaké jí odesílatel napsal.
Kaskáda do zásilky vloží tento text ve dvou podobách:
Prostý text jako jednodušší alternativu v těle zásilky.
Tento prostý text vytvoří Kaskáda automaticky z textu formátovaného (vytvořeného uživatelem) a to tak, že
odstraní veškeré formátování.
POZOR: vizuálně se takový text může od formátovaného originálu podstatně lišit (po odstranění formátování se text "slije" dohromady), proto je v prohlížeči zásilky k dispozici karta Prostý text, ve kterém může uživatel tento prostý text upravit tak, aby byl pro příjemce čitelnější.
Záleží na jeho poštovním programu:
![]() |
Přílohy zásilek |
![]() |
Mail-systém v Kaskádě | Zatoulané zásilky - jak se dopátrat příčiny |
![]() |