PHP pre začiatočníkov - Email, 6.diel

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);

Ak používame windows, tak neptrebujeme kódovanie.
Prekódovanie do Base64.
$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().

Toto je koniec časti o emailoch a nabudúce si povieme niečo o externých súboroch.

30.04.2005 17:10

PaBi3

Programovanie