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

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

** Herní hardware se od toho běžného často liší jen vzhledem ** Při výběru stále nezapomínejte na základní parametry ** Poradíme jak vybrat herní hardware i periferie

20.  2.  2017 | Stanislav Janů | 36

10 nejhorších produktů v historii Microsoftu

10 nejhorších produktů v historii Microsoftu

20.  2.  2017 | Karel Javůrek | 133

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

** Každý bastlíř se po čase neobjede bez armády švábů ** Dnes si některé z nich vyzkoušíme ** Třeba zázračný posuvný registr

19.  2.  2017 | Jakub Čížek | 39

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

** AMD uvedlo první tři procesory Ryzen 7 ** Všechny budou pracovat s osmi jádry a šestnácti vlákny ** Na pulty obchodů se dostanou už za týden

22.  2.  2017 | Stanislav Janů | 131

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

** Evropští úředníci chtějí, aby byly Desítky transparentnější ** Microsoft od jara skutečně chystá změny ** Ochráncům soukromí to ale nestačí

21.  2.  2017 | Jakub Čížek | 218

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

** Microsoft do svých telefonů integroval desktopové prostředí ** Moc to ale nevyšlo, chyběl pořádný výkon ** Teď to zkoušejí ex-googleři s Remix Singularity

23.  2.  2017 | Jakub Čížek | 73


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných špuntových sluchátek

Příslušenství do USB-C

reklama
reklama