Formmail - odesílání formulářů na email
Domovský adresář uživatele * Výchozí struktura souborů * Účel adresářů * /cgi-bin * /www * /stats * Kam se soubory
1. Úvod
Jedním z vestavěných skriptů je kom_formmail,
stejně jako ostatní vestavěné skripty, ani tento se nezobrazuje ve vašem
cgi-bin adresáři, ale můžete jej volat jakoby tam byl.
kom_formmail je určen k odesílání emailů
formulářem, přičemž všechny proměnné začínající řetězcem "prom_" budou
přidány do těla zprávy. Kom_formmail tedy můžete použít jak k odeslání dat z
formuláře na svůj email, tak jako "mejlovací
portál".
Jako odezvu na odeslání dat můžete:
- přesměrovat uživatele na libovolnou stránku internetu,
- vrátit mu vámi připravenou odpověď, umožňující vkládat odeslané údaje,
- vrátit uživateli výchozí odpověď.
Upozornění: Nepoužívejte kom_formmail nečestným způsobem,
například k odesílání spamu, nebo utajení totožnosti. Veškerá činnost
kom_formmailu je zaznamenávána a bez ohledu na to jakou hodnotu vyplníte
do políček From a Replay-To, víme čí stránka který email odeslala.
Uchovávány jsou tyto údaje: From, To, čas, vlastník procesu.
2. Parametry
Povinné parametry:
- /cgi-bin/kom_formmail cesta ke skriptu, u
formulářů obsah parametru "action".
- To emailová adresa příjemce zprávy
- From emailová adresa odesílatele
zprávy
Nepovinné parametry:
- Replay_To na jakou emailovou adresu se má
poslat odpověď na tuto zprávu, po stisku tlačítka "Odpovědět"
("Replay") v emailovém klientu. Není-li hodnota uvedena,
použije se údaj z From.
- Subject předmět zprávy
- Text text zprávy
- prom_[cokoliv] proměnná, jejíž hodnota se má připojit k
textu zprávy.
Parametry pro následné události:
- page adresa textového souboru, který se
použije jako HTML soubor vrácený prohlížeči po odeslání dat. Tento
soubor musí být ve vašem domovském adresáři. Nemusí být v podadresáři
/www. Vyskytuje-li se v něm název proměnné odeslané formulářem, před
nímž je uveden znak $, potom dojde k náhradě hodnotou této proměnné.
Například použití $Subject způsobí vložení předmětu odeslaného formuláře
atd. Tato volba má přednost, před volbou redir, jsou-li použity obě,
vykoná se pouze page.
- redir internetová stránka, na
kterou má být uživatel přesměrován po odeslání formuláře.
3. Příklad 1 - Odeslání emailové adresy uživatele na váš email.
Občas mají návštěvníci vašeho webu motivaci poslat
svoji emailovou adresu. Například, pokud si přejete zaslat jim zprávu o
aktualizaci vaší stránky.
Stejně se rozhodl postupovat administrátor magazínu
pyramia.kom.cz, kde se nové články objevují velmi zřídka. Pro úzké
zaměření webu, je pro návštěvníky zajímavé, dostat zprávu o vložení nového
článku. Pozn.: skutečné řešení na pyramia.kom.cz je jiné, z toho důvodu,
že magazín vznikl asi 5 let před touto webhostingovou službou.
Za pomocí níže uvedeného zdrojového kódu, vložil do
stránky tento formulář. Chce aby se po jeho odeslání zobrazila uživateli
administrátorem definovaná stránka. Tuto stránku uložil do adresáře ~/odpovedi/, který
si pro tuto příležitost vytvořil a pojmenoval ji aktualizace.txt.
|
|
Zdrojový kód formuláře vloženého do stránky
<FORM action="/cgi-bin/kom_formmail" method="POST">
<table cellpadding=3 border=1 align="center"><tr><td bgcolor="#dddddd" align="center">
<small>Pokud chcete dostávat oznámení o <br>nových článcích, zadejte svůj email:</small><br>
<INPUT type=hidden name="to" value="admin@pyramida.kom.cz">
<INPUT type=hidden name="from" value="admin@pyramida.kom.cz">
<INPUT type=hidden name="subject" value="aktualizace pyramidy">
<INPUT type=text name="prom_email" value="@">
<input type=hidden name="page" value="odpovedi/aktualizace.txt">
<INPUT type=submit value="Odeslat">
</td></tr></table>
</FORM>
|
Obsah souboru ~/odpovedi/aktualizace.txt
<html>
<body>
Děkujeme vám za zájem o naše sídlo. Oznámení o vložení nového<br>
článku budete dostávat na adresu $prom_email.
</body>
</html>
|
Použití $prom_email v definici odpovědní stránky
způsobí vložení zadané emailové adresy. Pokud například někdo zadá
adresu navstevnik@odnekud.z.cz, potom se mu po stisku tlačítka zobrazí
stránka:
Následná událost
Děkujeme vám za zájem o naše sídlo. Oznámení o vložení nového
článku budete dostávat na adresu navstevnik@odnekud.z.cz.
|
A administrátor obdrží takovýto email:
Email
From: admin@pyramida.kom.cz
To: admin@pyramida.kom.cz
Subject: aktualizace pyramidy
=======Data=======
email => navstevnik@odnekud.z.cz
|
4. Příklad 2 - Odeslání dat z formuláře na váš email.
V části věnované autoodpovídačům, jsme si vytvořili
systém automatických odpovědí zasílaných emailem pro firmu vyrábějící
vzduchové bubliny. Zákazník se prokousal našimi emaily, navštívil
firemní stránku a teď by rád znal konkrétní cenovou nabídku pro své
vysněné bubliny. Aby nám nemusel pracně popisovat co chce, ale i proto,
abychom mohli na naší straně tento proces dále automatizovat, vytvořili
jsme pro potenciální zákazníky jednoduchý formulář. Ten bude sloužit k
tomu, aby zákazník definoval svá kriteria, která nám budou po stitsku
tlačítka zaslána na email.
Správce webového sídla bublinárny měl připravenu
hezkou odpovědní stránku, která zrekapitulovala zákazníkova přání,
poděkovala mu a přislíbila brzkou odpověď. Vedení firmy však rozhodlo,
že má být zákazník ihned po odeslání formuláře přesměrován na adresu
http://vtipy.kom.cz.
Zdrojový kód formuláře vloženého do stránky
<FORM action="/cgi-bin/kom_formmail" method="POST">
<INPUT type=hidden name="To" value="prodej@bublinarna.kom.cz">
<INPUT type=hidden name="From" value="prodej@bublinarna.kom.cz">
<INPUT type=hidden name="Subject" value="Cenova nabidka">
<table cellpadding=3 border=1 cellspacing=1 align="center">
<tr><td bgcolor="#dddddd" align="center">
<table>
<tr>
<td><b>položka</b></td>
<td><b>jednotka</b></td>
<td><b>max</b></td>
<td><b>požadavek</b></td>
</tr>
<tr align="center">
<td align="left">barva kapaliny </td>
<td> - </td>
<td> - </td>
<td>
<INPUT type=text name="prom_barva" value="" size="10">
</td>
</tr>
<tr align="center">
<td align="left">počet bublin na 1 cm<sup>3</sup> </td>
<td> ks </td>
<td> 1 </td>
<td>
<INPUT type=text name="prom_hustota" value="" size="3">
</td>
</tr>
<tr align="center">
<td align="left">materiál bublin (druh vzduchu) </td>
<td> - </td>
<td> - </td>
<td>
<INPUT type=text name="prom_matros" value="" size="10">
</td>
</tr>
<tr align="center">
<td align="left">objem jedné plechovky </td>
<td> l </td>
<td> 653 </td>
<td>
<INPUT type=text name="prom_objem" value="" size="3">
</td>
</tr>
<tr align="center">
<td align="left">počet plechovek </td>
<td> ks (min.!) </td>
<td> 1 000 000 </td>
<td>
<INPUT type=text name="prom_pocet" value="" size="3">
</td>
</tr>
<tr align="center">
<td align="left">způsob dodávky </td>
<td> - </td>
<td> - </td>
<td>
<INPUT type=text name="prom_transport" value="" size="10">
</td>
</tr>
<tr align="center">
<td colspan="4" align="left"> Vaše emailová adresa:
<INPUT type=text name="prom_email" value="" size="40">
</td>
</tr>
<tr align="center">
<td colspan="4" align="left"> Poznámka
<TEXTAREA name="prom_zzzpoznamka" rows="5" cols="50"></TEXTAREA>
</td>
</tr>
<tr align="center">
<td colspan="4">
<INPUT type=submit value="Chci cenovou nabídku">
</td>
</tr>
</table>
<INPUT type=hidden name="redir" value="vtipy.kom.cz">
</td></tr></table>
</FORM>
|
Proměnná pro poznámku by se určitě měla správně
jmenovat spíše $prom_poznamka, než-li $prom_zzzpoznamka.
Důvod, který nás vedl k tomuto názvu spočívá v tom, že kom_formmail řadí
odeslaná data abecedně. A my chceme mít jistotu, že poznámka bude úplně
na konci. Je to z rize praktických důvodů, kvůli dalšímu automatickému
zpracování. Jsme jediná bublinárna v této hvězdné soustavě a tak nás
názory zákazníků nezajímají, tyto poznámky jsou při automatickém
zpracovávání ihned vyřazovány a nikdo je nečte :-) Do formuláře jsme je
dali jen proto, aby si zákazník myslel, že nás jeho názor zajímá ;-)
(Pozn.: Toto platí jen o fiktivní, neexistující firmě na výrobu bublin,
rozhodně takový postoj nemáme v kom.cz !!!)
5. Příklad 3 - Odeslání emailu přes web.
|