V tejto časti nášho seriálu sa dozviete ako odoslať email pomocou skriptu napísaného v jazyku PHP resp. sa naučíte používať funkciu mail().
V tejto časti si preberiem odoslanie emailu pomocou PHP. Jednoduchý proces nám odošle email v parametroch:
mail(prijemca, predmet, text)
Pri odosielaní emailu nezabúdame na to, že ak email odosielame s osobného počítaču a neobsahuje SMTP, tak email nebude možné odoslať. Funkcia mail() vracia hodnotu 1 alebo 0 čo vyjadruje úspešnosť akcie. Môže to byť po pozitívnej stránke(odoslané) alebo po negatívnej(neodoslané).
Pri emaili môžeme ešte doplniť adresu odosielateľa a to nasledovne.:
mail(prijemca, predmet, text, from:odosielatel);
Tento argument je nepovinný a nie je potrebné ho uvádzať.
Teraz sa presuniem k ostrému odoslaniu emailu:
<?php
$prijemca = "email@domena.tld";
$predmet = "Test";
$sprava = "Toto je testovacia textová správa, ktorá bude odoslaná pomocou jazyka PHP";
mail("$prijemca", "$predmet", "$sprava");
Príjemcu sme si dosadili pomocou premenných ale ak chcete posielať email staticky, tak je možné to napísať aj takto:
mail("email@domena.tld", "test", "Toto je testovacia textová
správa, ktorá bude odoslaná pomocou jazyka PHP");
Teraz sa dostaneme k prekódovaniu emailu. Povedzme, že tieto premenné už obsahujú nejakú hodnotu.
$adresa_prijemcu = elektronická adresa pošty $subject = subject, proste predmet; $text = vlastni telo zpravy;Prekódovanie na charset ISO-8859-2. Nasleduje prevedenie z windows-1250 do ISO-8859-2.
$text_1 = StrTr($text, "x8Ax8Dx8Ex9Ax9Dx9E", "xA9xABxAExB9xBBxBE");Nasleduje prekódovanie do Base64
$text_2 = Base64_Encode($text_1);Teraz pridanie hlavičiek.
$headers .= "MIME-Version: 1.0". "Content-Type: text/plain; charset=iso-8859-2". "Content-Transfer-Encoding: base64";A nakoniec odošleme email.
@mail($adresa_prijemcu,$subject,$text_2,$headers);
$text_2 = Base64_Encode($text);Pridanie hlavičiek
$headers .= "MIME-Version: 1.0". "Content-Type: text/plain; charset=windows-1250". "Content-Transfer-Encoding: base64";A odoslanie emailu.
@mail($adresa_prijemcu,$subject,$text_2,$headers);Keď už som pritom, tak mi nedá vysvetliť aj niečo na čo som zabudol. Všimli ste si pri funckí mail() znak @. Tento znak je tam s dôvodu potláčania chýb. Ak nastane na tom mieste chyba v skripte(nie v syntaxi), tak sa chyba nevypíše. Samozrejme táto vec je použiteľná pri všetkých funkciách v php nielen pri mail().