reklama

Umíme ve Flashi – 5. díl – odesílání e-mailů

Určitě časem dospějeme do situace, kdy budeme chtít uživateli našich aplikací nabídnout formulář pro odesílání e-mailových zpráv. V dnešním díle si ukážeme dva způsoby odesílání e-mailů.

E-maily, jak na ně?

Pro odesílání e-mailů existují přinejmenším dva způsoby. Oba si dnes vyzkoušíme. První, velmi známý příkaz známe jistě z HTML stránek. Jedná se o „mailto:“, který umožňuje odesílání pomocí e-mailového klienta.

Uvedený příkaz je nejjednodušší, nemusíme se starat o další skriptování na straně serveru. O všechno se postará náš e-mailový klient. Jediné, co mu musíme říct, je informace na jakou adresu se má zpráva poslat, s jakým textem a případně můžeme připojit předmět zprávy.

Pro nás to znamená, že si ve Flashi musíme vytvořit několik vstupních textových polí a pak přidáme tlačítko pro provedení odeslání e-mailu. Na tlačítko umístíme funkci getURL():

getURL("mailto:"+email+"?subject="+mail_predmet+"&body="+mail_zprava);

Proměnná e-mail určuje cílovou adresu, dále zde máme dvě proměnné pro zobrazení předmětu zprávy a samotné zprávy. Pokud uvedený skript otestujeme, po stisknutí tlačítka dojde k otevření okna e-mailového klienta a budeme mít vyplněná všechna potřebná políčka e-mailové zprávy.

Odesílání pomocí PHP skriptu

Výše uvedený způsob je jistě pohodlný, nemusíme se starat o další skripty, které by nám na straně serveru pomohly s odesíláním zprávy. Ovšem pokud chceme uživatelům nabídnout větší komfort při odesílání zpráv a nenutit je používat e-mailového klienta, musíme sáhnout po trochu složitějším řešení. Tím je odesílání e-mailů pomocí skriptu na straně serveru. Může se jednat o ASP, PHP … možností je mnoho, ale my si ukážeme řešení pomocí PHP.

Postup bude obdobný jako v předchozím případě, tedy pokud se budeme nejdříve zabývat aplikací na straně Flashe. Na scéně si vytvoříme několik textových polí pro vložení jména odesílatele, adresy odesílatele, předmětu zprávy a textu zprávy. Textová pole označíme jako vstupní (Input) a pojmenujeme jejich instance. Vytvoříme si na scéně tlačítko, kterému přiřadíme tento skript:

on (release) {
 mail_predmet = tema.text;
 mail_zprava = zprava.text;
 mail_jmeno = jmeno.text;
 mail_email = email.text;
 loadVariables("mail.php", this, "POST");
}

V uvedeném příkazu si uložíme obsahy polí do pomocných proměnných. Následuje provedení a načtení php skriptu. PHP stránka, na kterou se odkazujeme, provede samotné odeslání e-mailu. Ovšem, aby mohla e-mail odeslat, musí dostat informace o tom, jaká data a kam je má zaslat. K tomu nám poslouží právě pomocné proměnné, které si naplníme při stisknutí tlačítka. Tyto proměnné v sobě uchovávají informace, které si přebere příslušný PHP skript, který jsme použili.

Abychom ale věděli, jestli došlo k úspěšnému odeslání, musíme mít zpětnou vazbu. Té jsme docílili pomocí funkce loadVariables(), která načte data vypsaná PHP skriptem. Tímto se dozvíme, jestli došlo k úspěšnému či neúspěšnému odeslání e-mailu.

PHP skript

Nyní se podíváme, jak vypadá skript pro odesílání e-mailů:

<?
$to = "
vas_email@vas_server.cz";
$subject = stripslashes($HTTP_POST_VARS[`mail_predmet`]);
$message = $HTTP_POST_VARS[`mail_zprava`] ;
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/plain; charset=UTF-8\r\n";
$header .= "From: ". $HTTP_POST_VARS[`mail_jmeno`] ."<". $HTTP_POST_VARS[`mail_email`] . ">\r\n";
if(@mail($to, $subject, $message, $header))
 {
  echo "output=sent";
 } else {
  echo "output=error";
 }
?>

Je to velmi jednoduchý skript, který ale dobře poslouží našim účelům. Ve skriptu si všimneme první části, kde vkládáme do proměnných hodnoty z flashového souboru. Výraz: $HTTP_POST_VARS[`mail_predmet`] znamená převzetí hodnoty proměnné „mail_predmet“, kterou jsme pomocí metody POST odeslali z flashové animace. Jak je vidno, uvedeným způsobem můžeme snadno komunikovat mezi flashem a jinými asp stránkami na straně serveru.

Samotný příkaz pro odeslání e-mailu je velmi jednoduchý: mail($to, $subject, $message, $header). Názvy proměnných dávají tušit, co která část znamená. My se jenom pozastavíme nad zněním proměnné „header“, která, kromě jiného, určuje kódování zprávy.

Dalším krokem je zjištění stavu odeslání zprávy. K tomuto účelu máme v PHP skriptu podmínku, která zjišťuje stav odeslání. Pokud je vše v pořádku, vypíše se hodnota proměnné „output“ na „sent“. Pokud nastala chyba, proměnná „output“ se změní na hodnotu „error“. Abychom mohli zjistit, co se s e-mailem stalo, připíšeme na akci tlačítka následující kód:

this.onData = function() {
  trace(output);
 };

Protože jsme ve funkci loadVariables parametrem „this“ určili, že veškeré proměnné, které nám PHP skript poskytne, načteme na hlavní scénu, je zřejmé, že proměnná „output“ bude také na hlavní scéně. Po vyhodnocení načtení dat událostí onData() tak zjistíme hodnotu proměnné „output“. Pokud jsme v prostředí Flashe, necháme si hodnotu proměnné vypsat. Jinak bychom mohli dále testovat její hodnotu a reagovat tak úspěšné či neúspěšné odeslání zprávy.

Zdrojové soubory dnešní k dispozici zde.

Témata článku: Software, Programování, Message, Echo, Error

2 komentáře

Nejnovější komentáře

  • petr09 19. 8. 2007 17:19:27
    někde v tom kodu musi byt chyba, protoze se mi email odesle, ale obsah...
  • gully, gully 7. 11. 2005 9:25:21
    http://diskuse-zaciname-s-flash-mx-2004.wz.cz
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 102

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 36

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 74

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

** V notebooku s cenou nad 20 tisíc nesmí chybět kvalitní displej a rychlé úložiště ** Za dalších deset tisíc můžete dostat navíc styl nebo výkonnější komponenty ** Vybírat můžete z různých velikostí i konstrukcí

8.  12.  2016 | Stanislav Janů | 82


reklama