Skript pro odesílání formuláře e-mailem

Tento skript souží k zasílání jakéhokoliv obsahu formuláře na váš e-mail - počet takto zhotovených formulářů není nijak omezen.

Nejprve musíme nadefinovat hlavičku formuláře:

<form method="post" enctype="multipart/form-data" accept-charset="UTF-8"
	action="http://www.web4u.cz/formmail/formmail.php"
>

Dále pak definujeme potřebné proměnné ve formátu:

ProměnnáPopis
accept-charset

Řešení chyby prohlížeče Internet Explorer, který ignoruje hlavičku accept-charset a posílá data v jiném kódování.

<input name="utf8" type="hidden" value="&#x2713;">
recipient

Příjemce formuláře, zde zadáte e-mailovou adresu na kterou má být obsah formuláře zaslán.

<input type=hidden name="recipient" value="email@vasemail.cz">

Více příjemců oddělujte čárkou.

bcc

Příjemce skryté kopie formuláře, zde zadáte e-mailovou adresu na kterou má být obsah formuláře zaslán.

<input type=hidden name="bcc" value="email@vasemail.cz">

Více příjemců oddělujte čárkou.

subject

Text v předmětu odesílaného e-mailu.

<input type=hidden name="subject" value="požadovaný předmět zprávy">
email

Do tohoto zadavacího pole zadá odesílatel svoji e-mailovou adresu.

<input type=text name="email">

Tato položka je testována na korektnost! Vyhoví cokoliv@cokoliv.cokoliv

phone_no

Telefonní číslo odesílatele formuláře.

<input type=text name="phone_no">

Tato položka je testována na korektnost! Vyhoví např. +420 5 45 21 72 53, nebo 45217253, nebo 05/452172 apod.

fax_no

Faxové číslo odesílatele formuláře.

<input type=text name="fax_no">

Tato položka je testována na korektnost! (podobně jako u phone_no)

zip_code

Poštovní směrovací číslo odesílatele.

<input type=text name="zip_code">

Tato položka je testována na korektnost! Vyhoví např. 62800, nebo 628 00

redirect

Stránka, na kterou si přejete přesměrovat uživatele po odeslání formuláře.

<input type=hidden name="redirect" value="http://your.host.com/to/file.html">

Samozřejmě můžete použít i klasické zadávací pole či menu a pod.

require

Zde můžete zadat pole, bez kterých nebude formulář odeslán (uživatel je musí vyplnit).

<input type=hidden name="require" value="email,phone_no">

Hlašení o chybě lze definovat pomocí missing_fields_redirect - viz popis níže.

required

Má stejnou funkci jako "require".

<input type=hidden name="required" value="email,phone_no">

Hlašení o chybě lze definovat pomocí missing_fields_redirect - viz popis níže.

attachment

Umožňuje uživateli připojit soubor, který bude odeslán spolu s formulářem.

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="attachment">

MAX_FILE_SIZE označuje maximální velikost souboru, který lze zaslat.

file

Lze definovat i soubor pro zaslání.

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="hidden" name="path_to_file" value="/data/ftp_login/html/tmp">
<input type="file" name="file">

MAX_FILE_SIZE označuje maximální velikost souboru, který lze zaslat.path_to_file musí obsahovat cestu do vašeho adresáře kam se soubor uloží. Cesta k souboru se uvádí absolutně. Např.: při cestě/data/vaseprezentace/html/tmp se soubor umístí do adresáře html/tmp/. Pro tento adresář musí být nastaven přístup pro zápis (chmod 777) v případě nejasností náskontaktujte.

sort

Toto políčko uživateli umožňuje seřadit proměnné do výsledného vygenerovaného e-mailu. Uživatel si může zvolit, zda chce položky řadit abecedně nebo si definovat vlastní sadu pravidel, podle kterých budou položky zapisovány do výsledné zprávy. Bez použití políčka "sort" se položky řadí tak, jak je odesílá prohlížeč.

Abecedně:

<input type=hidden name="sort" value="alphabetic">

Seřazení podle pravidel:

<input type=hidden name="sort" value="order:name1,name2,etc...">
env_report

Určuje, jaké globální proměnné mají být o uživateli zaslány v e-mailu.

Podporujeme:

REMOTE_HOST
doménová adresa počítače, který odesílá požadavek
REMOTE_ADDR
IP adresa počítače, který odesílá požadavek
HTTP_USER_AGENT
kódové označení prohlížeče klienta
<input type=hidden name="env_report" value="REMOTE_HOST, HTTP_USER_AGENT">
title

Definuje záhlaví stránky s výsledkem, pokud nebude použito přesměrování na jinou URL.

<input type=hidden name="title" value="Výsledek odeslání">
missing_fields_redirect

Určuje URL, na kterou se má uživatel přesměrovat v případě chyby.

Pokud nebude použito, použije se výchozí hlášení.

<input type=hidden name="missing_fields_redirect" value="http://your.host.com/ error.html">
background

Umožňuje definovat obrázek pozadí pro zobrazení výsledku odeslání či chyby.

<input type=hidden name="background" value="http://your.host.xxx/image.gif">
bgcolor

Definuje barvu pozadí pro zobrazení výsledku odeslání či chyby.

<input type=hidden name="bgcolor" value="#FFFFFF">
text_color

Definuje barvu textu pro zobrazení výsledku odeslání či chyby.

<input type=hidden name="text_color" value="#000000">
link_color

Určuje barvu linku použitou na stránce s výsledkem.

<input type=hidden name="link_color" value="#FF0000">
vlink_color

Určuje barvu linku, která byla již navštívena na stránce s výsledkem.

<input type=hidden name="vlink_color" value="#0000FF">
alink_color

Určuje barvu linku, po "najetí" na link na stránce s výsledkem.

<input type=hidden name="alink_color" value="#0000FF">
stylesheet

Specifikuje cestu ke stylům (css), které mají být vloženy.

<input type=hidden name="style_sheet" value="style.css">

Dále si pak do formuláře umístíme libovolné množství vašich zadávacích prvků, které budou odeslány spolu s těmito parametry.

Nakonec přidáme tagy pro odesílací a vymazávací tlačítko:

<input type="submit" name="Submit" value="Odeslat">
<input type="reset" name="Reset" value="Reset">

a formulář ukončíme tagem:

</form>

Příklad:

Váš telefon:
Váš e-mail:
Váš obrázek:
Jaký máte na nás dotaz:

Zdrojový kód:

<form method="post" enctype="multipart/form-data" accept-charset="UTF-8"
	action="http://www.web4u.cz/formmail/formmail.php"
>
	<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
	<input type="hidden" name="recipient" value="email@domena.cz">
	<input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">
	<input type="hidden" name="utf8" value="&#x2713;">
	<table>
		<tr>
			<td>Váš telefon:</td>
			<td><input type="text" name="phone_no"></td>
		</tr>
		<tr>
			<td>Váš e-mail:</td>
			<td><input type="text" name="email"></td>
		</tr>
		<tr>
			<td>Váš obrázek:</td>
			<td><input type="file" name="attachment"></td>
		</tr>
		<tr>
			<td>Jaký máte na nás dotaz:</td>
			<td><textarea name="question" cols="40" rows="3"></textarea></td>
		</tr>
	</table>
	<input type="submit" name="Submit" value="Odeslat">
	<input type="reset" name="Reset" value="Reset">
</form>

Samozřejmě můžete doplňovat jakékoliv html tagy.

Příklad tagů pro objednávku:

Kalkulačka TI68 cena 950 Kč
Baterie 1,5 V typ AA

Zdojový kód:

<table>
	<tr>
		<td>Kalkulačka TI68 cena 950,-Kč</td>
		<td><input type="text" name="ti68_kusu" value="1" size="5"></td>
	</tr>
	<tr>
		<td>Baterie 1,5V typ AA</td>
		<td><input type="text" name="aa_kusu" value="1" size="5"></td>
	</tr>
</table>

Jakékoliv dotazy ohledně tohoto skriptu samozřejmě rádizodpovíme