Téma: Odosielanie e-mailu pomocou php
Úloha: Vytvorte formulár s názvom email.php pomocou ktorého budeme môcť odoslať textovú správu na ľubovoľnú emailovú adresu. Skript na odosielanie emailu sa bude nazývať sprava.php.
Podmienky: Vytvorený dokument umiestnite na svoj blog v položke PHP ako „Zadanie č.13 Odosielanie e-mailu“ s plným znením úlohy a odkazom na súbor email.html
Teória :
Vytvoríme si jednoduchý formulár, na ktorom si predvedieme odosielanie formuláru na e-mail. Tu je HTML kód:
<form action="mail.php" method="POST"> <p>Vaše meno:</p> <input type="text" name="name"> <p>Vaša e-mailová adresa:</p> <input type="text" name="email"> <p>Tu napíšte správu pre mňa:</p><textarea name="message" rows="6" cols="25"></textarea><br /> <input type="submit" value="Poslať"><input type="reset" value="Zmaž"> </form>
Toto je zatiaľ len normálny HTML zápis formulára. Metóda odosielania „post“ je v tomto prípade lepšia ako „get“, pretože sa bude odosielať väčšie množstvo dát. Formulár by ale nefungoval, ak nevytvoríme ešte navyše php skript, pretože má nastavený atribút action (ktorý hovorí ako sa bude formulár odosielať) na vykonanie v súbore mail.php:
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="Od: $name \n Správa: $message";
$recipient = "mkrupa@gdm.sosthe.sk";
$subject = "Kontaktný Formulár";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Chyba!");
echo "Ďakujem za Vašu správu!";
?>
V tomto príklade je test, či sa funkcia mail() podarila alebo nie. Všimnite si, že sa v skripte používajú premenné, ktoré sa volajú rovnako ako políčka vo formulári. Na odoslanie správy sa používa php funkcia mail() . Tá môže obsahovať nasedujúce premenné:
mail(to,subject,message,headers,parameters)
| to | Vyžaduje sa. Definuje email na ktorý sa odošle správa (v našom príklade je to funkcia $recipient) |
| subject | Vyžaduje sa. Špecifikuje predmet správy.Upozornenie: Tento parameter nemá obsahovať špeciálne znaky. |
| message | Vyžaduje sa. Definuje text správy, ktorá bude odoslaná. Koniec riadku sa označí symbolom LF (\n). Dĺžka správy by nemala prekročiť 70 znakov. |
| headers | Nepovinné. Definuje ďalšie údaje v e-maily ako napr. From (od koho je správa), Cc (komu sa pošle kópia správy), a Bcc (skrytá kópia správy). Viaceré headers sa oddeľujú znakmi CRLF (\r\n). |
| parameters | Nepovinné. Špecifikujú dodatočné informácie v hlavičke správy, ako napríklad údaje o poštovom serveri atď. |
Ak sú údaje v premenných, nepoužívajú sa úvodzovky. Ak je potrebné zadať viac prijímateľov, oddeľujú sa ich mená čiarkami. Riadkový zlom sa robí pomocou „\n“. V praxi sa samozrejme obohacuje o ďalšie funkcie (napr. sa neodosiela prázdny formulár). Podmienkou funkčnosti príkladu je, že na webovom serveri funguje aj smtp server.
