Odesílání emailů pomocí PHP

3. května 2006 v 16:07 | Mirda |  PHP/MySQL
Jako pokračování seriálu o PHP přináším popis základní funkce, kterou můžete využít pro odeslání informací získaných při vyplnění formuláře emailem. Je to funkce a princip pro začátečníky, ktrerý zvládne každý.
Představme si, že máme jednoduchý formulář, kde budeme zadávat položky JMÉNO, EMAIL a ZPRÁVA, takový formulář může vypadat následovně :
<form method="POST" action="odeslat.php"><p>
Jméno : <input type="text" name="jmeno" size="20"><br>
Email : <input type="text" name="email" size="20"></p>
<p>Zprava :<br>
<textarea rows="6" name="zprava" cols="26"></textarea></p>
<p><input type="submit" value="Odeslat" name="odeslat"></p>
</form>
Tento formulář odešle po stisknutí tlačítka "Odeslat" vyplněné informace metodou POST do skriptu odeslat.php (jak je nadefinováno v prvním řádku kódu). Formulář obsahuje textová pole INPUT s názvy jmeno (velikost 20 znaků), email (velikost 20 znaků) a pole TEXTAREA pro umístění textu zprávy - zprava (6 řádků, 26 znaků šířky). Parametry uvedených polí lze změnit a je nutno podotknout, že nedefinují maximální délku vloženého textu, nýbrž pouze vizuální velikost zadávacích polí. Formulář dále obsahuje tlačítko submit, které zajistí odeslání informací do skriptu.
Samotný skript odeslat.php může vypadat následovně :
<?
@mail(KOMU,"PREDMET","OBSAH","From: ODKOHO");
?>
Toto je ukázka prázdného skriptu, přičemž jsem zvýraznil pole, které je potřeba nahradit informacemi (KOMU = email adresáta, PREDMET = předmět emailu, OBSAH = tělo zprávy, ODKOHO = email odesilatele). Snadno tak můžeme přizpůsobit skript pro výše připravený formulář, kdy se na zadaný email odešle zpráva s předmětem Zpráva od (jméno) a obsahem získaným z textového pole zprava :
<?
$adresat = "email(zavinac)adresata.cz";
@mail($adresat,"Zprava od $jmeno","$zprava
","From: $email");
?>
Skript v této podobě odešle email na adresu, kterou nadefinujete v druhém řádku v uvozovkách a to tak že v předmětu bude zapsano obsah pole JMENO a v obsahu obsah pole ZPRAVA, cely email navic prijde jakoby z adresy, kterou definuje pole EMAIL.
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 Honza Honza | E-mail | Web | 26. května 2006 v 22:37 | Reagovat

testik :-)

2 jarda materidouska jarda materidouska | E-mail | 5. června 2006 v 17:38 | Reagovat

gfh mg mgd d mgh mhdh gdh h gg m

3 koppy koppy | E-mail | 5. června 2006 v 17:45 | Reagovat

cau honzo prosimte myslis ze by si mi mohl udelat nejaky hotovy vzor ktery bych si uz potom jen vlozil na stranku a jemne poupravil? diky a napis

4 hahadkjdk@seznam.cz hahadkjdk@seznam.cz | E-mail | 29. června 2006 v 19:39 | Reagovat

carcrcrcr

5 iiiiiiiiiiiii iiiiiiiiiiiii | 18. října 2006 v 11:05 | Reagovat

iiiiiiiiiiiiiiiiiii

6 sdd sdd | E-mail | 8. prosince 2006 v 21:43 | Reagovat

jdd kldj f

7 JAcek JAcek | E-mail | 11. ledna 2007 v 1:31 | Reagovat

Hi! Very nice site! Thanks you very much! uqCrfsQcty2

8 md md | E-mail | Web | 22. ledna 2007 v 16:24 | Reagovat

dff

9 hjr hjr | 5. května 2007 v 6:50 | Reagovat

Achjo, tohle je cesta do pekel, da se pres to velmi jednoduse spamovat. Chybi tam jakekoliv filtrovani vstupu, takze kdyz posles POST request, kde bude $jmeno hromada radku s dalsima To: adresama, posle se email i na tyto adresy.

Ale koukam, ze pouzivas short_open_tags a jeste navic spolehas na register_globals. Oboji durazne nedoporucuji.

10 Soudruh Soudruh | 26. října 2008 v 17:25 | Reagovat

Je to tu jen na blog.cz takže to už něco vypovídá o kvalitě. Je jasné že toto ti bude fungovat jen pokud bude v php.ini povolena direktiva register_globals. A navíc vyžaduje mít aktivováno open_short_tags na on!

Mělo by to bejt nějak takhle

<?php

if(mail($_POST['komu'],$_POST['predmet'],$_POST['zprava'],"From: ".$_POST['od']))

{

echo "Email odeslán.";

}

else

{

echo "Email nebyl odeslán.";

}

?>

Musela to psát nějaká začínající lamka.

11 iEMOcz iEMOcz | E-mail | Web | 22. ledna 2009 v 4:16 | Reagovat

Mě to nějak nejde?!

Dělam co se dá ale nejde mi to!

12 rcjyjrpmgs rcjyjrpmgs | E-mail | Web | 29. dubna 2009 v 1:02 | Reagovat

c7Oyio  <a href="http://tkskijwevcmf.com/">tkskijwevcmf</a>, [url=http://jftaabdviwgb.com/]jftaabdviwgb[/url], [link=http://kijhvjnsziip.com/]kijhvjnsziip[/link], http://fjxfayfltyji.com/

13 hhh hhh | 18. srpna 2009 v 11:06 | Reagovat

';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>

14 Hans Hans | E-mail | Web | 12. prosince 2009 v 22:43 | Reagovat

zdarte lidi pls já z HTML ani s php moc neumím ale chcu se pomstím kámošovi a udělat mu falešný hack , aby tam zadal jemno heslo atd ... a aby se to poslalo na můj email a on to ani nepostřehl nevíte jek by se to dalo udělat kdyby jo a já vím že jo tak mi pls pls odepište na Email Jan.ruzna@seznam.cz díky moc

15 Drahomír Hanák Drahomír Hanák | E-mail | Web | 9. ledna 2011 v 17:50 | Reagovat

Vy ste teda programátoři xD. Jak už tu bylo řečeno, jen to, že je to na blogu, vypovídá o kvalitě skriptu. Snad když už umím PHP, musím umět alespoň základy HTML a s tím už nějaká stránka udělat jde. Navíc je tu několik free hostingů a milioný free templatů. No a ještě k tomu dotazu tady naposled, víš že je to nezákoné? Určitě bych to nepsal do komentářů na nějaký web.

16 fff fff | 19. listopadu 2011 v 16:25 | Reagovat

afasfasf

17 cialis cialis | E-mail | Web | 11. září 2014 v 19:33 | Reagovat

Hello!

18 KennBleakgek KennBleakgek | E-mail | Web | 13. května 2017 v 17:34 | Reagovat

Where Can I Buy Tamoxifen Uk  <a href=http://byuvaigranonile.com>viagra</a> Cialis Levitra Y Viagra

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.
 

Aktuální články

Reklama