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

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

** Microsoft pomalu začíná kritizovat svůj nejpopulárnější OS ** Chce konečně dostat podniky na Desítky ** Bezpečnostní podpora Sedmiček vydrží ještě necelé tři roky

17.  1.  2017 | Jakub Čížek | 375

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

Český státní blacklist už funguje. Ministerstvo financí se pochlubilo s detaily

** Dva týdny po Novém roce zajím zeje prázdnotou ** Ministerstvo vydalo metodický pokyn ** Takhle to bude fungovat v praxi

16.  1.  2017 | Jakub Čížek | 49

Opera Neon: Takto prý bude vypadat prohlížeč budoucnosti. Chcete to?

Opera Neon: Takto prý bude vypadat prohlížeč budoucnosti. Chcete to?

** Opera představila Neon ** Koncepci prohlížeče budoucnosti ** Připomíná Chrome OS

16.  1.  2017 | Jakub Čížek | 35


Aktuální číslo časopisu Computer

99 nejlepších programů pro váš počítač

Zvykejte si na umělou inteligenci

Velké testy PC zdrojů a gamepadů

Alternativní zdroje energie

reklama
reklama