V tomto pokračování seriálu rozšíříme náš skript o odeslání
formuláře e-mailem ve formátu HTML.
V minulých dílech seriálu jsme si vytvořili skript pro odesílání
libovolného formuláře e-mailem. E-mail byl ale odesílán v obyčejném
textovém formátu, což u rozsáhlejších formulářů zhoršovalo čitelnost
e-mailu. Proto dnes skript rozšíříme o možnost odeslání ve formátu
HTML. Použijeme k tomu include, který vytváří v PHP třídu sloužící
pro vytvoření HTML e-mailu a jeho odeslání (zdroj: http://www.zend.com/).
Do skriptu byl doplněn následující nepovinný
parametr: $html ... Y/N - odeslat ve formátu HTML
Vlastní část skriptu pro odeslání formuláře e-mailem ve formátu
HTML bude vypadat následovně:
if ($html
== "Y") { // pokud má být mail odeslán ve formátu
HTML $telo = "<table
width=\"100%\">"; $telo .=
"<tr><td><font
color=\"Red\"><b>Email:</b></font></td> <td> </td><td>$email</td></tr>"; reset($HTTP_POST_VARS);
// pokud parametr
začíná na # nebo *, // tak zapsat hodnotu do textu
mailu if (((substr($promenna, 0, 1) == "@")
|| (substr($promenna, 0, 1) == "#"))
&& ($hodnota != "")) { $telo .=
"<tr><td
valign=\"top\"><b>".substr($promenna,
1).":</b></td>
<td> </td><td>$hodnota</td></tr>";
} }
// odešleme mail ve
formátu HTML $mail = new html_mime_mail("X-Mailer: Html Mime Mail
Class"); $mail->add_html(ToISO($telo), ""); $mail->set_charset('iso-8859-2',
TRUE); $mail->build_message(); $mail->send($komu, $komu, $email, $email,
ToISO($predmet)); $sendok =
true;
// odeslat potvrzení usleep(500); $mail->send($email, $email, $email,
$email, ToISO("Potvrzení - vyplnění
formuláře")); } else
{ //
pokud má být mail odeslán ve formátu prostého
textu ..... }
Jako příklad pro předvedení byl použit kontaktní formulář, který
je možno použít pro firemní stránky. Na výsledek našeho snažení se
můžete podívat zde.
Kompletní zdrojové soubory příkladu - Download Základní
include využité v příkladu - Download Definice
třídy pro odeslání HTML e-mailu - Download