PHP prakticky/Poslání mailu
Vzhled
K odesílání mailů slouží funkce mail(). Její syntaxe je:
mail(komu, předmět, text [, hlavičky]);
V komu se definuje e-mail příjemce. Je-li příjemců víc, oddělujeme e-mailové adresy čárkami. Předmět a text je snad každému jasný. Jen si dovolím upozornit, že pokud chceme odřádkování v textu, musíme použít uvozovky a metaznaky \n
. V nepovinném parametru hlavičky můžeme nastavit od koho je e-mail, kódování zprávy, prioritu, návratovou cestu pro chyby atp. Hlavičky se oddělují novým řádkem (\n
). Odeslání kompletního e-mailu si ukážeme:
<?php
$pro = 'muj@prijemce.cz'; // nastavíme příjemce e-mailu
$predmet = 'Automatická zpráva pro odběratele novinek serveru jakpsatweb.cz';
$zprava = "Dobrý den,\nchtěli bychom Vás upozornit, "; // samotná zpráva
$zprava .= "že jste dlouho nebyl na našich stránkách.\n\n\n";
$zprava .= "-----------------\n";
$zprava .= "Toto je automatický e-mail, neodpovídejte!";
// hlavičky
// všimněte si, že e-mail od koho se nastaví až v hlavičkách!
$hlavicky = 'From: muj@e-mail.cz'."\n"; // můj e-mail
$hlavicky .= "MIME-Version: 1.0\n";
$hlavicky .= "Content-Transfer-Encoding: QUOTED-PRINTABLE\n"; // způsob kódování
$hlavicky .= "X-Mailer: PHP\n";
$hlavicky .= "X-Priority: 1\n"; // priorita (1 nejvyšší, 2 velká, 3 normální, 4 nejmenší)
$hlavicky .= 'Return-Path: <error@muj.e-mail.cz>'."\n"; // Návratová cesta pro chyby
$hlavicky .= "Content-Type: text/plain; charset=ISO-8859-2\n"; // Kódování
/*
poznámka: normálně se e-maily posílají v ISO-8859-2. Máte alespoň částečnou jistotu, že
vám ji schroustne každý e-mailový klient. Osobně jsem zkusil použít i Windows-1250,
ale nikdy to nedopadlo dobře...
*/
// Nyní zbývá odeslání e-mailu a vypsání, zdali se e-mail odeslal.
$mail = @mail($pro, $predmet, $zprava, $hlavicky);
if($mail) echo 'E-mail byl úspěšně odeslán.';
else echo 'E-mail se bohužel nepodařilo odeslat!';
?>
Náš skript tedy při každém zavolání odešle e-mail na muj@prijemce.cz.