Jak poslat e-mail prostřednictvím PHP - část 1.

 2012-03-13 00:00:00
 Dmitry Burobin

Dnes napíšeme skript pro odesílaní e-mailů prostřednictvím PHP.

Série článků:
1) Jak poslat e-mail prostřednictvím PHP - část 1.
2) Posíláme obrázek a soubor prostřednictvím PHP - část 2.

První příklad - bez ověření vstupních dat.

<?php
// jestli tlačítko Odeslat bylo zmačknuté
if($_POST['submit']) {
        
// $_POST['title'] data z inputu Předmět, trim() - odstraňuje zbytečné 
        //mezery a řádky, htmlspecialchars() - převádí specifické symboly 
        //do HTML entit, proto, aby jsme zabránili nejjednoduššímu pokusu o 
        //hacknutí stránky a substr($_POST['title'], 0, 1000) - 
        //omezujeme text do 1000 znaků.  
        //Pro proměnnou $_POST['mess'] uděláme to samé.
        
$title substr(htmlspecialchars(trim($_POST['title'])), 01000);
        
$mess =  substr(htmlspecialchars(trim($_POST['mess'])), 01000000);
        
// $to - příjemce emailu
        
$to 'test@test.cz';
        
// $from - odesílatel
        
$from='test@test.cz';
        
// funkce, která odesíla email.
        
if(mail($to$title$mess'From:'.$from)){
        echo 
'Děkujeme! Váš dopis byl odeslán.';
    }else{
        echo 
'Dopis nebyl odeslán';
    }

?>
<form action="" method=post>

<
p>Nějaký text <p>
              <
div align="center">
              
Předmět:<br />
              <
input type="text" name="title" size="40"><br />
              
Zprava:<br />
              <
textarea name="mess" rows="10" cols="40"></textarea>
              <
br />
              <
input type="submit" value="Odeslat" name="submit"></div>
</
form

Jestli to zkoušite na lokálním serveru, tak bych Vám doporučoval nainstalovat Test Mail Server Tool, tento program je určen pro přijem emailů, konfigurace je velice jednoduchá, akorat ověřte zda je nastavený 25 port a ukažte cestu, kam se mají ukládát data. Pak otevřeme soubor php.ini a v bloce [mail function] ověřte, zda máte tyto řádky:

SMTP = localhost
smtp_port = 25
Když nejsou nebo jsou zakomentováný, tak je doplňte nebo aktivujte. Teď už by Vám všechno mělo fungovat.

Druhý příklad - s ověřením vstupních dat.

<?php
function show_form()
{
?>
<form action="" method=post>
<
div align="center">
              <
br />Jméno:*<br />
              <
input type="text" name="name" size="40">
              <
br />Telefonní číslo:<br />
              <
input type="text" name="tel" size="40">
              <
br />E-mail:*<br />
              <
input type="text" name="email" size="40">
              <
br />Téma:<br />
              <
input type="text" name="title" size="40">
              <
br />Text zprávy:*<br />
              <
textarea rows="10" name="mess" cols="30"></textarea>
              <
br /><input type="submit" value="Odeslat" name="submit">
</
div>
</
form>
Musíte vyplňit.
<?php
}

function 
complete_mail() {
        
// $_POST['title'] data z inputu Předmět, trim() - odstraňuje zbytečné 
        //mezery a řádky, htmlspecialchars() - převádí specifické symboly 
        //do HTML entit, proto, aby jsme zabránili nejjednoduššímu pokusu o 
        //hacknutí stránky a substr($_POST['title'], 0, 1000) - 
        //omezujeme text do 1000 znaků. Pro proměnné 
        //$_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] 
        //uděláme to samé.

        
$title =  substr(htmlspecialchars(trim($_POST['title'])), 01000);
        
$message =  substr(htmlspecialchars(trim($_POST['mess'])), 01000000);
        
$name =  substr(htmlspecialchars(trim($_POST['name'])), 030);
        
$tel =  substr(htmlspecialchars(trim($_POST['tel'])), 030);
        
$email =  substr(htmlspecialchars(trim($_POST['email'])), 050);
        
// Jestli není vyplněno pole "Jméno" - chyba 0
        
if (empty($name))
             
output_err(0);
        
// Jestli pole email vyplněno špatně - chyba 1
        
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$email))
             
output_err(1);
        
// Jestli není vyplněno pole "Text zprávy" - chyba 2
        
if(empty($message))
             
output_err(2);
        
// vytvoříme náš e-mail
        
$mess '
Jméno odesílatele: '
.$name.' <br>
Telefonní číslo: '
.$tel.' <br>
Email: '
.$email.' <br>
'
.$message;
        
// $to - příjemce emailu
        
$to $email;
        
// $from - odesílatel
        
$headers  'MIME-Version: 1.0' "\r\n";
        
$headers .= 'Content-type: text/html; charset=utf-8' "\r\n";
        
$headers .= 'From: Koding.cz<info@koding.cz>'"\r\n";
        
        if(
mail($to$title$mess$headers)){
        echo 
'Děkujeme! Váš dopis byl odeslán.';
    }else{
        echo 
'Dopis nebyl odeslán';
    }
}

function 
output_err($num)
{
    
$err[0] = 'Chyba! Zadejte jméno.';
    
$err[1] = 'Chyba! Špatný e-mail.';
    
$err[2] = 'Chyba! Zadejte zprávu.';
    echo 
'<p>'.$err[$num].'</p>';
    
show_form();
    exit();
}

if (!empty(
$_POST['submit'])) complete_mail();
else 
show_form();
?>

Ukázka

Děkuji za pozornost, v dalším článku Vám ještě ukážu, jak se da poslat nejenom textovou zprávu, ale obrázek či soubor.

Systém Orphus
Napište komentář.
Celkem komenrářů(435)
PatrickSax - 2017-06-27  23:18:15
 Kamagra Oral Jelly [url=http://comprakamagra.org]Kamagra Oral Jelly[/url] [url=http://comprakamagra.org/kamagra-oral-jelly]Compra Kamagra Oral Jelly[/url] [url=http://comprakamagra.org/kamagra]Compra Kamagra[/url] [url=http://comprakamagra.org/levitra]Compra Levitra[/url] [url=http://comprakamagra.org/cialis]Compra Cialis[/url] [url=http://comprakamagra.org/viagra]Viagra Cialis[/url]

Compra kamagra oral jelly Kamagra Oral Jelly Compra Kamagra Oral Jelly Compra Kamagra Compra Levitra Compra Cialis Viagra Cialis

http://comprakamagra.org
http://comprakamagra.org/kamagra-oral-jelly
http://comprakamagra.org/kamagra
http://comprakamagra.org/levitra
http://comprakamagra.org/cialis
http://comprakamagra.org/viagra
LutherSok - 2017-06-26  22:43:49
 Buy Amoxil Online Buy Amoxil Order Amoxil Buy Zovirax
[url=http://amoxilrx.com]Buy Amoxil[/url] [url=http://amoxil.me]Order Amoxil[/url] [url=http://zovirax.mobi]Buy Zovirax[/url]
http://amoxilrx.com http://amoxil.me http://zovirax.mobi
WillieVox - 2017-06-26  11:36:38
 Buy Amoxil Online Amoxil Buy Amoxil Zovirax
[url=http://amoxilrx.com]Amoxil[/url] [url=http://amoxil.me]Buy Amoxil[/url] [url=http://zovirax.mobi]Zovirax[/url]
http://amoxilrx.com http://amoxil.me http://zovirax.mobi
Robertstexy - 2017-06-25  23:13:58
 Buy Amoxil Online
[url=http://amoxilrx.com]Buy Amoxil Online[/url]
Order Amoxil Online
http://amoxilrx.com
buy amoxicillin online canada
buy amoxil online Order Amoxil amoxicillin 500 mg dosage instructions cheap amoxil buy amoxil cheap buy amoxil 500 mg
[url=http://amoxilrx.com]Buy Amoxil Online[/url]
http://amoxilrx.com
GeorgeSed - 2017-06-23  14:38:37
 [url=http://bentley.chasy-replica.ru]Часы Bentley Mulliner[/url]
ЧАСЫ BENTLEY MULLINER «МИЛЛИОНЕР»
http://bentley.chasy-replica.ru
Это нечто большее, чем просто часы, это шедевры высокого часового искусства, которое зародилось в прекрасной Бельгии. Возьмите с собой Часы Bentley Mulliner на деловую встречу, занятия спортом, на отдых или просто носите их в повседневной жизни, и они будут дарить Вам только приятные эмоции, восхищения со стороны женщин и уважение со стороны мужчин! Часы Bentley Mulliner — часы с Мужским характером! Красивые и качественные часы bentley mulliner позволят Вам в считанные секунды располагать собеседника к себе на встречах и важных переговорах.
Купить ЧасыBentley Mulliner со скидкой 50%
Купить Часы[url=http://bentley.chasy-replica.ru]Bentley Mulliner[/url] со скидкой 50%
GeorgeHib - 2017-06-22  12:26:48
 [url=http://zovirax.mobi]Buy Zovirax[/url]
Generic Zovirax is an antiviral drug. It slows the growth and spread of the herpes virus so that the body can fight off the infection. Acyclovir will not cure herpes, but it can lessen the symptoms of the infection. Acyclovir is used to treat infections caused by herpes viruses. Illnesses caused by herpes viruses include genital herpes, cold sores, shingles, and chicken pox.
[url=http://zovirax.mobi/buy-zovirax-online.html]Buy Zovirax Online[/url]

http://zovirax.mobi
[url=http://zovirax.mobi/generic-zovirax.html]generic zovirax[/url]
http://zovirax.mobi/buy-zovirax-online.html
buy zovirax
http://zovirax.mobi/generic-zovirax.html
generic zovirax
Generic Zovirax
buy zovirax online
Darrinsnics - 2017-06-22  00:17:38
 [url=http://writepaperme.com]write my paper for me[/url] [url=http://writepaperme.com/business-plans-sample.html]business plans sample[/url] [url=http://writepaperme.com/how-to-do-a-college-essay.html]how to do a college essay[/url]
top excuses for not doing homework top excuses for not doing homework mechanical engineering dissertation mechanical engineering dissertation college application essay writing service college application essay writing service
http://writepaperme.com/write-my-essay-for-cheap.html
informative essay topic ideas
http://writepaperme.com/what-to-write-in-a-essay-about-yourself.html
how to write a good introduction to a research paper
http://writepaperme.com/essay-about-how-to-write-an-essay.html
english to spanish essay translation
HarryTof - 2017-06-21  21:55:30
 [url=http://amoxil.me]Buy Amoxil[/url]
buy amoxicillin online for humans
[url=http://amoxil.me/amoxil-500-mg.html]amoxil 500 mg[/url]
buy amoxicillin online for humans
[url=http://amoxil.me/order-amoxil.html]order amoxil[/url]
amoxicillin 500 mg dosage instructions
Buy Amoxil
buy amoxil with out prescription
amoxil 500 mg
cheap amoxil
buy amoxil 500mg antibiotics
http://amoxil.me
amoxil 500 mg
http://amoxil.me/amoxil-500-mg.html
buy amoxil
http://amoxil.me/order-amoxil.html
AnthonyJep - 2017-06-20  23:50:38
 Buy Amoxil Online
[url=http://amoxilrx.com]Buy Amoxil Online[/url]
[url=http://amoxilrx.com]Order Amoxil Online[/url]
Order Amoxil Online
buy amoxicillin online canada
[url=http://amoxilrx.com/cheap-amoxil.html]cheap amoxil[/url]
how often to take amoxicillin 500mg
[url=http://amoxilrx.com/buy-amoxil-500-mg.html]buy amoxil 500 mg[/url]

buy amoxil online
http://amoxilrx.com
amoxicillin and alcohol
http://amoxilrx.com/cheap-amoxil.html
buy amoxicillin online canada
http://amoxilrx.com/buy-amoxil-500-mg.html

buy amoxil online Buy Amoxil Online amoxicillin 500 mg dosage instructions cheap amoxil buy amoxil cheap buy amoxil 500 mg
AndresSwefs - 2017-06-17  12:20:32
 [url=http://amoxilrx.com]amoxil[/url]
buy amoxicillin online canada
[url=http://amoxilrx.com/cheap-amoxil.html]cheap amoxil[/url]
how often to take amoxicillin 500mg
[url=http://amoxilrx.com/buy-amoxil-500-mg.html]buy amoxil 500 mg[/url]

buy amoxil online
http://amoxilrx.com
amoxicillin and alcohol
http://amoxilrx.com/cheap-amoxil.html
buy amoxicillin online canada
http://amoxilrx.com/buy-amoxil-500-mg.html

buy amoxil online amoxil amoxicillin 500 mg dosage instructions cheap amoxil buy amoxil cheap buy amoxil 500 mg
AnthonyZooca - 2017-06-17  11:41:24
 [url=http://amoxilrx.com]buy amoxil online[/url]
buy amoxicillin online canada
[url=http://amoxilrx.com/cheap-amoxil.html]cheap amoxil[/url]
how often to take amoxicillin 500mg
[url=http://amoxilrx.com/buy-amoxil-500-mg.html]buy amoxil 500 mg[/url]

buy amoxil online
http://amoxilrx.com
amoxicillin and alcohol
http://amoxilrx.com/cheap-amoxil.html
buy amoxicillin online canada
http://amoxilrx.com/buy-amoxil-500-mg.html

buy amoxil online buy amoxil online amoxicillin 500 mg dosage instructions cheap amoxil buy amoxil cheap buy amoxil 500 mg
ArmandoAvaph - 2017-06-12  21:32:55
 [url=http://roomidecor.com/]Decorating room ideas pictures[/url]

Decorating room ideas pictures
Home decor ideas
http://roomidecor.com
Decorating room ideas pictures
CharlesneD - 2017-06-12  16:25:48
 [url=http://roomdecor.pw]Home Decor Ideas[/url]

Home Decor Ideas

http://roomdecor.pw
Samuelhib - 2017-06-11  20:57:00
 [url=http://roomdecor.pw]Home Decor Ideas[/url]
[url=http://roomdecor.pw/map.html]dorm room designer[/url]
[url=http://roomdecor.pw/bathroom/]Bathroom[/url]
[url=http://roomdecor.pw/bathroom/bathroom-tile-mold.html]bathroom tile mold[/url]

Home Decor Ideas
dorm room designer
Bathroom
bathroom tile mold

http://roomdecor.pw
http://roomdecor.pw/map.html
http://roomdecor.pw/bathroom/
http://roomdecor.pw/bathroom/bathroom-tile-mold.html
Ugzdycle - 2017-04-11  05:38:12
 http://buy-tadalafil-ph.com/ cialis generic cheap viagra
Iredycle - 2017-04-10  07:37:22
 http://buy-tadalafil-ph.com/ cialis generic no prescription
Jofiexy - 2017-04-10  07:07:21
 http://buy-tadalafil-ph.com/ walgreens cialis online pharmacy
Kpydycle - 2017-04-09  20:02:02
 g http://tadalafil-ph24.com/ canadian pharmacy cialis generic
Ahwat - 2017-04-09  15:33:41
 http://tadalafil-ph24.com/ order cialis online canada cheap cialis
mix viagra and alcohol cialis pills
[url=http://tadalafil-ph24.com/]website link[/url] five
Abkfitly - 2017-04-08  13:06:14
 http://canadian-ph.life/ reputable canadian online pharmacies http://vardenafil-on.com/ generic cheap levitra online http://tadalafil-on.com/ buy generic cialis university of kentucky
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.