iReklama  |  PC Svět  |  vyhledávací centrála  |  Diskuzní fórum  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz - čte si nás 10 čtenářů
 
PC Svět
Hlavní stránka
ASP
Aktuality
Assembler
C,C++
Delphi
Diskuze
Grafika
Hacking
Hardware
Hry a zábava
HTML
Internet
JavaScript
Komunikace
Linux
Microsoft Office
Turbo Pascal
PHP
Software
Tiskové zprávy
Visual Basic
Windows
WWW katalog

Knihovna zdr. kódů

Nabídka skriptů aj.

Homepage autora
Služby
Guestbook
  kniha návštěv pro
  každého
MailForm
  zasílání výsledků
  formulářů na e-mail
Programy
DOS Commander
WinMan
Windows Tools
Informace
O PC Světě
Přehled rubrik
Reklama
Výsledky anket
Přehled novinek


šéfredaktor
Petr Šťastný
admin@pcsvet.cz

zástupce šéfredaktora
Pavel Rauš
raus@pcsvet.cz

Stránka je optimalizo-
vána pro prohlížeč
Internet Explorer 5.0
při rozlišení 800x600

 © Petr Šťastný 2001
   All rights reserved

PC Svět
ikonka PC Světa


Linux - zdarma a legálně
TOPlist

PHP: Odeslání e-mailu ve formátu HTML
Vytisknout   Poslat   Komentáře (0)   Přidat komentář

V tomto článku si popíšeme způsob, jak odeslat pomocí PHP e-mail ve formátu HTML.

Standardně podporuje PHP odeslání mailu pomocí funkce mail(). Tato funkce nám ale umožní odeslat e-mail pouze ve formátu prostého textu. Pokud ale potřebuje pomocí skriptu odeslat e-mail, ve kterém chceme použít formátování textu příp. vložit obrázek, tak už nemůžeme použít pouze funkci mail(). 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/).

Jako příklad použití si vytvoříme jednoduchý formulář, pomocí kterého odešleme e-mail. Ve formuláři zadáme e-mailovou adresu a text e-mailu ve formátu HTML (použití standardních HTML tagů). Do formuláře přidáme i možnost výběru odeslání e-mailu ve formátu prostého textu (pokud by nám formát HTML nevyhovoval).

<html><body>

<form name="Form" action="sendmail.php" method="post">

<input type="hidden" value="mterc@gpm.web4u.cz" name="email">
<input type="hidden" value="GetPaidMoney - mail z formuláře" name="predmet">
<input type="hidden" value="ok.php" name="nexturl">

<p><label>Příjemce:</label><br>
<input type="text" name="komu" size="25"><br></p>

<p><label>Text mailu:</label><br>
<textarea name="telo" cols="60" rows="10"></textarea><br></p>

<p><label>Formát mailu:</label><br>
<input type="radio" name="html" value="N">Prostý text&nbsp;&nbsp;
<input type="radio" name="html" value="Y" checked>HTML</p>

<p><input type="submit" name="submitButtonName" value="Odeslat mail"></p>

</form>

</body></html>

Stránka pro zobrazení výsledku by mohla vypadat třeba takto. Nazveme ji např. ok.php.

<html><body>

<b><font size="6">OK!</font></b>
<p>Vaše zpráva byla v pořádku odeslána :-)</p>

</body></html>

Vlastní odeslání e-mailu se nachází ve skriptu sendmail.php. Skriptu je možné předat následující parametry.

Povinné parametry:
$komu ... adresa příjemce
$email ... adresa odesílatele

Nepovinné parametry:
$predmet ... předmět e-mailu
$nexturl ... stránka s výsledkem
$backurl ... adresa stránky pro návrat
$html ... Y/N - odeslat ve formátu HTML
$telo ... vlastní tělo e-mailu (podle formátu buď prostý text nebo HTML kód)

Třída pro odeslání HTML e-mailu je definována v tomto includu class.html.mime.mail.inc. Postup odeslání e-mailu ve formátu HTML bude vypadat následovně. Funkce ToISO() slouží pouze pro převod textu z kódování Win1250 na iso-8859-2. Tato funkce se nachází v includu functions.php.

include("../inc/class.html.mime.mail.inc");

// vytvoření objektu $mail
$mail = new html_mime_mail("X-Mailer: Html Mime Mail Class");

// přidání kódu ve fromátu HTML do těla e-mailu
$mail->add_html(ToISO($telo), "");

// nastavení kódování e-mailu
$mail->set_charset('iso-8859-2', TRUE);

// sestavení e-mailu
$mail->build_message();

// vlastní odeslání emailu
$mail->send($komu, $komu, $email, $email, $predmet);

Celý skript sendmail.php pro odeslání e-mailu pak bude vypadat takto.

require("../inc/functions.php");
if ($html == "Y") include("../inc/class.html.mime.mail.inc");

if ($html == "Y") {
$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, $predmet);
} else {
mail($komu, ToISO($predmet), ToISO($telo), "From: $email");
}

if ($nexturl != "") {
echo "<script language=\"JavaScript1.2\"><!--\n";
echo "self.location=\"$nexturl\";\n";
echo "// -->\n";
echo "</script>";
} else {
echo("<font size=\"6\"><b>Děkujeme!</b></font>");
echo("<p>Vaše zpráva byla v pořádku odeslána.</p>");
}

Pomocí třídy pro odesílání HTML e-mailů lze vkládat do e-mailu i obrázky a také přílohy. Podrobný popis možností (v angličtině) naleznete u tohoto includu včetně příkladu použití.

Jak bude vypadat konečný výsledek 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

Autor: Michal Terč, mterc@atlas.cz, informace a seznam článků


Komentáře k článku

Žádné komentáře k tomuto článku

Přidat komentář


Poslední články ze stejné rubriky
PHP: Odeslání libovolného formuláře e-mailem (3.)
Jednoduchý FTP klient v PHP
PHP: Katalog stránek (2.)
PHP: Katalog stránek (1.)
PHP - diskuze (2.)

Diskuze - PHP - celkem 293 příspěvků (zobrazeno max. 15) - zobrazit celou diskuzi
Podkategorie
Databáze [43]
Název Autor Datum
Ako poslať dáta formulára? Kecso 26.09.2001
   žádná odpověď    
V Zozo 12.09.2001
• Chyba kódování v MySQL stefan 14.09.2001
Jak mám zaokrouhlit??? Martin 11.09.2001
• round Wiki 12.09.2001
Blob data z MySQL Krasty 09.09.2001
• Re: Blob data z MySQL Petr Šťastný 09.09.2001
• Blob data z MySQL Krasty 11.09.2001
• RE : Blob data z MySQL stefan 14.09.2001
• Blob data z MySQL Krasty 15.09.2001
SORT Roman 07.09.2001
• Sort Wiki 07.09.2001
• Sort Wiki 07.09.2001
RE : MySQL a Grafické ovládání Kamil 03.09.2001
   žádná odpověď    
MySQL a Grafické ovládání Michal 02.09.2001
   žádná odpověď    
Provozovatel:
PES.cz
Příbuzné články
•  PHP: Odeslání libovolného formuláře e-mailem (2.)
•  PHP: Odeslání libovolného formuláře e-mailem (1.)
Poslední články
Acer Veriton 7200 - počítač pro náročné
OSI Model
Základy 2D grafiky - kružnice a elipsa
Microsoft Combat Flight Simulator 2: WWII Pacific Theater
Zákazníci Telecomu jsou chráněni před vysokým účtem za telefon
Hodnocení článku
nejlepší <----> nejhorší
    
Stav: 1
Počet: 1
Informace o článku
Datum 12.9.2001
Čtenářů 272
Autor Michal Terč
Rubrika PHP - příklady
Nový redaktor
  Chcete psát články
  pro PC Svět či se
  stát redaktorem?

Články honorovány!

  Informace zde
EInfo
  Chcete být informováni
  o každém novém článku
  na PC Světě?

Zadejte svůj e-mail:

MSN.ATLAS.CZ
Hladat.sk

hlavní stránka  |  vyhledávací centrála  |  Diskuze  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz

Se svými dotazy či problémy se obracejte na diskuzní fórum, věci týkající se PC Světa směřujte na e-mail pcsvet@pcsvet.cz

Šíření obsahu tohoto serveru nebo jeho části je bez souhlasu redakce zakázáno.
(c) PC Svět 2001 - Všechna práva vyhrazena.