Poznávání PHP

Zasílání e-mailů

Může se stát, že budeme potřebovat zaslat svým zákazníkům informační e-mail, ve kterém mohou být uvedeny například knižní novinky. Maily můžeme jednoduše zasílat pomocí mail serveru, který zajistí odeslání zprávy a potřebných PHP funkcí.


Instalace

Pro zasílání mailů je potřeba mít nainstalován patřičný mail server (SMTP server). Pomocí tohoto serveru můžeme jednoduše zasílat zprávy podle libosti. Nyní si ukážeme jednotlivé kroky, které povedou k instalaci mail serveru.

Pro naše testovací účely postačí obyčejný mail server, v našem případě oblíbený ArGoSoft Mail Server. Tento mail server si můžeme stáhnout na adrese http://www.argosoft.com/applications/mailserver/download.asp nebo v sekci Download.

Po úspěšném stažení, nainstalování a spuštění přejdeme do záložky Options (CTRL + O), kde nastavíme do pole DNS Server adresu 127.0.0.1 (localhost).

Nyní je potřeba v záložce Local Domains nastavit vlastní doménu. Do pole tedy napíšeme například test.cz a klikneme na tlačítko Add.

Nyní již zbýva jen přidat jednotlivé uživatelské účty do naší domény test.cz. V záložce Users (CTRL + U) kliknutím na ikonu Add New User.

Nakonec ještě musíme nastavit v php.ini v sekci [mail function] nastavit volby:


Maily v PHP

Pro zasílání mailů v PHP můžeme využít funkce:

Mail(<komu>, <předmět>, <zpráva>, [<případné hlavičky>])

Příklady:


<?
// Zašle mail na adresu "test@test.cz" s uvedeným předmětem a textem.
mail("test@test.cz", "Testovaci zprava", "Ahoj, toto je testovaci zprava");
?>


<?
// Zašle mail na adresu "test@test.cz" s uvedeným předmětem, textem a hlavičkami.
mail("test@test.cz", "Testovaci zprava", 
     "Ahoj, toto je testovaci zprava", "From: admin@test.cz");
?>


<?
// Sestavíme hlavičky
$hlavicky  = "From: admin@test.cz\r\n"; // od koho e-mail posíláme
$hlavicky .= "X-Priority: 3\r\n"; // priorita 1 (nejvyšší), 3, 5 (nejnižší)
$hlavicky .= "X-Mailer: moje PHP\r\n"; // informace o způsobu odeslání
$hlavicky .= "Return-Path: <admin@test.cz>\r\n"; // zpáteční mailová adresa


// Zašle mail na adresu "test@test.cz" s uvedeným předmětem, textem a hlavičkami.
mail("test@test.cz", "Testovaci zprava", 
     "Ahoj, toto je testovaci zprava", $hlavicky);
?>

HTML maily

K zasílání HTML mailů můžeme také využít funkce Mail, kdy přidáme další nutné hlavičky.


<?
// Sestavíme hlavičky
$hlavicky  = "From: admin@test.cz\r\n"; // od koho e-mail posíláme
$hlavicky .= "X-Priority: 3\r\n"; // priorita 1 (nejvyšší), 3, 5 (nejnižší)
$hlavicky .= "X-Mailer: moje PHP\r\n"; // informace o způsobu odeslání
$hlavicky .= "Return-Path: <admin@test.cz>\r\n"; // zpáteční mailová adresa

$hlavicky .= "MIME-Version: 1.0\r\n";
$hlavicky .= "Content-type: text/html; charset=iso-8859-2\r\n"; // kódování, můžeme také dosadit windows-1250

$zprava = '<html>
	     <head>
                <title>Testovací e-mail</title>
             </head>
             <body>
                <p><b>Testovací HTML e-mail</b></p>
             </body>
           </html>';

// Zašle mail na adresu "test@test.cz" s uvedeným předmětem, textem a hlavičkami.
mail("test@test.cz", "Testovaci zprava", $zprava, $hlavicky);
?>


Pro tento díl to bude vše. V příštím díle budeme dále pokračovat v poznávání jazyka PHP.

Petr Rympler