MS Outlook 2007 a novější vykreslují HTML e-maily Wordem

htmlNedávno jsem se dostal k zajímavému úkolu, a sice nakódovat nový e-mailový HTML newsletter, což rozhodně nepatří k činnostem, které bych běžně dělal, jelikož komunikační platformu typu e-mail využívám zásadně jen textově a sem tam datově. Inu s chutí do toho, a půl je hotovo… alespoň dokud to neotestujete v e-mailovém klientu od Microsoftu.

Vznik problému

Po nějakých pár chvil trvající piplačce, kdy jsem HTML šablonu rozesílaného newsletteru dokódoval až k dokonalosti a otestoval napříč nejpoužívanějšími platformami typu Seznam, Gmail, Thunderbird, apod. jsem s velkou obezřetností otevřel inkriminovaný e-mail i v Outlooku a nestačil jsem zírat. Čekal jsem, že to bude obdobně jako v případě běžných webových prohlížečů opět trochu jiné, rozhodně jsem však nečekal rýži rozsypanou tak, že by jí ani Popelka nedokázala roztřídit zpět. Jednoduše řečeno, Outlook mi z mého emailu udělal hatmatilku v pravém smyslu tohoto slova.

Analýza

Začal jsem pátrat a dopídil jsem se poměrně snadno a rychle záležitosti, kterou chtě nechtě zkrátka nemohu pochopit. Psal se rok 2007 a Microsoft konečně uvolnil Internet Explorer 7, který na tehdejší poměry mezi vykreslováním webových strandardů konečně udělal z IE alespoň jakž takž použitelný internetový prohlížeč. Čekalo se tedy, že jeho jádro obdrží i nově vznikající Outlook 2007 pro zobrazování naší barevné a html kódy prošpikované komunikace. Co se však stalo doopravdy? Ano, Microsoft nový Outlook skutečně vydal. Ano, Microsoft taktéž předělal jeho vykreslovací jádro. Ale ne, nebylo to nové jádro z IE 7. Do nového Outlooku bylo implementováno vykreslovací jádro z Wordu.

Řešení

Díky „novému“ jádru nezbylo nešťastným vývojářům, než se přízpůsobit a začít kódovat HTML emaily poněkud jinak, než byli dosud zvyklí. Konkrétně se vrátit doslova o několik let zpátky. Už jste nahradili staré zvyklosti v kódování tabulkových layoutů do tabulek a místo nich používáte moderní plovoucí a obtékací vlastnosti elementů? Výborně, tak v případě e-mailů na to vše můžete zase zapomenout. Pokud chcete pěkný emailing i pro klienty Outlooku 2007 a novějšího, budete ho muset poskládat z obrázků, nebo z tabulek. Zapomeňte na obrázková pozadí polepená psaným textem, zapomeňte na floatování, zapomeňte na spoustu dalších moderních css vlastností jako správné vykreslování paddingů a vraťte se k tabulkám. Bohužel, jinak to nejde.

Aktuální zásady pro kódování HTML e-mailů pro Outlook 2007 a vyšší:

  • Nepoužívejte separátory v divech. Pouze tabulky a případně průhledné gif separátory
  • Žádná obrázková pozadí, pouze barvy
  • Používejte pouze inline styly, žádné definice v hlavičce
  • Nepoužívejte padding, pouze margin
  • Zapomeňte na funknční obtékání (floatování)

Příčina?

Můžeme si vybrat mězi různými vysvětleními i spekulacemi. Microsoft se vyjádřil velmi stroze – prý jde o bezpečnostní důvody. Tím celou záležitost uzavřel, a následně vydal i Outlook 2010 se stejným pokřiveným Word jádrem. Někteří tvrdí, že k tomu byla firma přinucena po kauze, kdy musela přestat automaticky předinstalovávat do svých produktů Internet Explorer. Tomu já osobně však nevěřím, jelikož by stačilo nainstalovat IE jádro spolu s Outlookem.

Ať je skutečný důvod jakýkoliv, jisté je jen to, že na to opět doplatí vývojáři, kteří budou mít zase o mnoho zbytečné a doslova ultra-nudné práce navíc.

Napsat komentář

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