www.kom.cz Zákaznická podpora

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
2. Parametry
3. Příklad - Odeslání emailové adresy uživatele na váš email.
4. Příklad - Odeslání dat z formuláře na váš email.
5. Příklad - Odeslání emailu přes web.

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.

Formulář
Pokud chcete dostávat oznámení o
nových článcích, zadejte svůj email:

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.

Formulář
položka jednotka max požadavek
barva kapaliny - -
počet bublin na 1 cm3 ks 1
materiál bublin (druh vzduchu) - -
objem jedné plechovky l 653
počet plechovek ks (min.!) 1 000 000
způsob dodávky - -
Vaše emailová adresa:
Poznámka

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.
     
     
     







@2003 Richard Ruibar, www.kom.cz