Díky dynamickým stránkám lze odesílat formulář přímo ze stránky, nezávisle na správci pošty uživatele. V intranetu si ale můžete dovolit opak. Máte zde totiž systémy „pod kontrolou“. Využití poštovního programu uživatele pak skýtá velkou výhodu, protože odeslané zprávy (formuláře) jsou přehledně uloženy ve složce odeslaných e-mailů a může se s nimi dále pracovat.

Známým a nejčastějším způsobem odesílání mailu je formulář, který metodou GET předá adresáta(y), předmět a tělo zprávy poštovnímu programu. Výsledkem po odeslání je rozepsaná zpráva v poštovním programu klienta. Tam ji lze upravit, přiložit soubory a poté odeslat. To ale může být i nevýhodou (nutnost posílání dvakrát). Další nevýhodou je, že bez použití např. JavaScriptu můžete odeslat pouze jedno pole formuláře do těla mailu.

Jména polí formuláře je nutno dodržet – poštovní program je pak převezme do nově vytvářené zprávy. Skrytá pole můžete nahradit poli textovými, nepotřebná pole lze vypustit.

<form action="mailto:adresa1@nekde.cz;adresa2@nekde.cz"> // adresáty oddělujete středníkem
<input type="hidden" name="cc" value="adresa3@nekde.cz"> // adresáty kopie zadáváte do pole "cc"
<input type="hidden" name="bcc" value="adresa4@nekde.cz"> // adresáty skryté kopie zadáváte do "bcc"
<input type="hidden" name="subject" value="Zpráva_z_naší_aplikace"> // předmět zprávy je v poli "subject"
Zpráva:<br />
<textarea  name="body"></textarea><br /> // tělo zprávy do pole "body"
<input type="submit" value="Odeslat">
<input type="reset" value="Nová zpráva"> // tlačítko pro vymazání, po odeslání totiž formulář zůstane nezměněn
</form>

Druhým způsobem je použít formulář, který využívá metody POST pro předání údajů poštovnímu programu. Ve skutečnosti nejde o odeslání klasickou metodou post, jde jen o určení způsobu, jakým má prohlížeč vyvolat poštovní službu a jak jí předat parametry. Je proto možné, že nebude pracovat korektně na některých "ne-Windows" systémech. Jak jsem však psal, uvažuji o použití tam, kde víte, na jakém systému bude aplikace provozována. Po odeslání formuláře je zpráva přímo vložena do složky "Pošta k odeslání" v poštovním programu klienta a připravena k odeslání, zprávu není možné upravovovat. Další výhodou je také možnost odesílání libovolného počtu položek – všechna pole formuláře jsou totiž vložena do těla odesílané zprávy.

<form action="mailto:adresa1@nekde.cz;adresa2@nekde.cz?subject=Zpráva_z_naší_aplikace&cc=adresa3@nekde.cz&bcc=
adresa4@nekde.cz" method="post" enctype="text/plain">
Sdělení 1: <input type=text name="Zprava1"><br />
Sdělení 2: <input type="text" name="Zprava2"><br />
Sdělení 3: <textarea name="Zprava3"></textarea><br />
<input type="submit" value="Odeslat"> <input type="reset" value="Nová zpráva">
</form>

Jak vidíte, veškeré údaje adresátů i předmět zprávy jsou uvedeny v řetězci mailto:, přičemž jména parametrů jsou analogická jménům polí předchozího GET formuláře. Velmi důležité je mimo uvedení metody uvést také typ kódování ENCTYPE – bez něj totiž přenesení hodnot polí formuláře do těla mailu v poštovním programu nepracuje.

Veškerá pole formuláře (můžete si jich přidat kolik chcete, včetně skrytých, zatrhávacích políček nebo radio-buttonů) jsou pak odeslána v těle zprávy tak, že je vždy na samostatném řádku jméno pole, znak rovná se a za ním obsah pole. Jelikož jsou do těla mailu vložena skutečně všechna pole, je dobré nepojmenovávat tlačítka pro odeslání a vymazání formuláře, jinak se jejich hodnoty objeví i v odesílaném mailu.

Použití na webové stránce je možné tam, kde se smíříte s nevýhodami tohoto způsobu. Pak se hodí nabídnout i alternativní odeslání pomocí skriptu přímo ze stránky s možností odeslání kopie i na adresu klienta a také dobrý popis aplikace.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět