Skripta za pošiljanje e-pošte


Uvod

Ker so se med uporabniki spleta pojavili številni, ki odjemalca za e-pošto nimajo nameščenega - to so predvsem tisti, ki na splet dostopajo preko telefona in kiberkavarn, sem se odločil, da bom napravil preprost kontaktni obrazec, ki bo omogočil pošiljanje tudi tem. Predpogoj, da lahko skripto tudi sami uporabite, je da imate dostop do funkcije mail()!

Koraki skozi PHP kodo

Najprej si bomo ogledali PHP kodo. Pa si oglejmo kako poteka pobiranje podatkov. Najprej preverimo, če je sporočilo sploh poslano s pomočjo isset($_POST['submit'], sledi preverjanje vpisanih podatkov. Tu lahko uporabite vse živo, sam sem v tem primeru uporabil dolžino e-naslova nad 5 znakov, dolžino zadeve večjo od 0 in dolžino besedila večjo od 10 znakov, ker z manj ne moreš povedati nič pametnega :). Seveda lahko nastavite poljubne parametre.

Spremenljivka $za vsebuje vaš e-mail, zato jo nujno spremenite, da boste lahko sploh karkoli prejeli! V spremenljivko $sporocilo pa vnesemo vrednost polja besedilo, besedilo pa se prelomi vsakih 70 črk. Tudi to omejitev lahko povečate ali pa popolnoma odstranite funkcijo wordwrap(). V $glave so še dodatne informacije, za več podrobnosti si oglejte PHP manual.


if(isset($_POST['submit'])) {
if(
strlen($_POST['naslov']) > && strlen($_POST['zadeva']) > && strlen($_POST['besedilo']) > 10) {
//obdelaj in pošlji
$za 'vas.mail@ponudnik.com';
$zadeva $_POST['zadeva'];
$sporocilo wordwrap($_POST['besedilo'], 70);
$glave "From: ".$_POST['naslov'] . "\r\n" "Reply-To:" .$_POST['naslov'] . "\r\n""X-Mailer: PHP/" phpversion();

Nadaljujemo s funkcijo mail(). Ta vrne FALSE ob napaki, zato sem jo enostavno vdelal v if stavek. Za opozorilo o napaki sem uporabil javascript, ki omogoča da se že vpisane informacije ohranijo, lahko pa uporabite tudi navaden echo stavek, ampak takrat bo moral obiskovalec vse vpisati znova.


if(mail($za$zadeva$sporocilo$glave) === FALSE) {
echo 
'<script type="text/javascript">alert('Sporočilo ni bilo uspešno poslanoPreverite vpisane podatke in poskusite znova!');document.history(-1);</script>'
}
else {
echo 
'<script type="text/javascript">alert('Sporočilo je bilo uspešno poslano!');</script>'
}

Končno še zadnji del PHP kode. In sicer napaka, ki se izpiše, če pogoji iz drugega if stavka niso izpolnjeni


}
else {
echo 
'<script type="text/javascript">alert('Vsaj eno izmed polj označenih z zvezdico ni pravilno izpolnjeno.n Prosimpopravite vnos!');document.history(-1);</script>'
}
}

Koraki skozi HTML kodo

HTML koda je precej preprosta. Najprej seveda obvestilo, da so vsa polja obvezna. To je pomembno, saj se lahko zgodi, da bo ob kateremkoli praznem polju sporočilo romalo med neželeno pošto. Zaradi tega tudi preverjanje dolžine vnosov v PHP kodi. Sledi tabela s polji. Pomembno je, da pod action nastavite pravo ime skripte! Velikosti polj lahko poljubno spremenite tako da uredite vrednost size ali pa rows (vrstice) in cols (stolpci).


<p>Polja označena z zvezdico <b>*</bso obvezna</p>
<
form method="post" action="kontakt.php">
<
table class="center">
<
tr>
<
td><b>Vaš e-mail:</b></td>
<
td><input type="text" size="50" name="naslov" /></td>
<
td><b>*</b></td>
</
tr>
<
tr>
<
td><b>Zadeva:</b></td>
<
td><input type="text" size="50" name="zadeva" /></td>
<
td><b>*</b></td>
</
tr>
<
tr>
<
td><b>Vsebina:</b></td>
<
td><textarea rows="20" cols="50" name="besedilo"></textarea></td>
<
td><b>*</b></td>
</
tr>
<
tr>
<
td>&nbsp;</td>
<
td><input type="submit" name="submit" value="Pošlji" class="submit" /></td>
<
td>&nbsp;</td>
</
tr>
</
table>
</
form>

To je vse. Navodila kako skripto usposobiti in izvorno kodo najdete v desnem stolpcu. Če imate predloge za optmizacijo, mi jih sporočite na e-mail


Copyright 2002-2012 Andrej Mernik, vsa vprašanja na e-mail. Pa še Posebna zahvala. Stran je bojda narejena v skladu s XHTML standardi. Za spremljanje novosti lahko uporabite tudi RSS.

Hitre povezave

Uporaba skripte za komercialno uporabo (služenje denarja) je strogo prepovedana!

Izvorna koda

Navodila za uporabo

Zgornjo skripto si prenesite na disk in jo poljubno preimenujte, recimo kontakt.php. Nato spremenite vrednosti spremenljivke $za in action v prave vrednosti.