Email küldő szolgáltatás


Honlapok esetében sokszor felmerül az a kérdés, hogy milyen módon lehet olyan szolgáltatást kitenni a lapra, ahonnan a látogatók egyszerűen és gyorsan tudnak E-mail küldeni a webmesternek (vagy egy adott címre).

Egyik lehetséges megoldás a Fusion Mail előre megírt, ingyenesen felhasználható scriptje, mely php segítségével valósítja meg a fenti “feladatot”. Az eredeti script egyes részeit lefordítottam, illetve az eredeti “thankyou.php” helyett itt már a “sikeresmail.html” szerepel, egyéb módosítás nem történt.

Mire is lesz szükséged?

Először is egy olyan tárhelyre, ahol működik a PHP és lehet mail-t küldeni (ha ezt nem tudod, kérdezd meg a rendszergazdát). Ha ezek a feltételek adottak, már csak le kell mentened az alább látható 3 kódot olyan néven ami a címükben is szerepel, majd feltölteni a tárhelyedre.

Az “index.html” lesz az a lap, melyet a látogatók ki fognak tölteni. Természetesen ezt a kódrészletet nem csak így önmagában használhatod fel, akár már meglévő honlapodba is beépítheted.

1
2
3
4
5
6
7
<form action="mail.php" method="post">
Küldő neve: <input type="text" name="name"><br/>
Küldő mail címe: <input type="text" name="email"><br/>
Üzenet szövege<br/>
<textarea name="message" cols="40" rows="5"></textarea><br/>
<input type="submit" value="küldés"><br/>
</form>

A “mail.php” fogja elvégezni a tényleg munkát, ez kapja majd meg a “küldés” gomb megnyomásakor az “index.html”-be beírt adatokat.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
/*
*****************
fusion mail
 
version 1.0
 
fusionphp.com
*****************
*/
 
//variables (change these)
 
$youremail = "cimzett@mailcime.hu";
// a te mail címed, ahova a levelek menni fognak
 
$subject = "contact form";
// a levél tárgya
 
$thankyou = "sikeresmail.html";
// sikeres küldés után ez fog megjelenni a küldőnek
 
// innentől kezdve már ne módosíts semmit
function check($postArg) { return (IsSet($_POST[$postArg]) && !Empty($_POST[$postArg])); }
 
if(!check('email')){
?>
Nem adtál meg mail címet, nyomd meg a VISSZA gombot.<br/>
<?php
}elseif(!check('name')){
?>
Nem adtál meg nevet, nyomd meg a VISSZA gombot.<br/>
<?php
}elseif(!check('message')){
?>
Nem írtál be üzenetet, nyomd meg a VISSZA gombot.<br/>
<?php
}else{
 
$msg = ereg_replace("\\\'", "'", $_POST['message']);
$msg = ereg_replace('\\\"', "\"", $msg);
$message1 = "from: " . $_POST['name'] . "\nemail: " . $_POST['email'] . "\nmessage:\n" . $msg;
mail($youremail, $subject, $message1, "From: " . $_POST['email'] . "\r\nReply-to: " . $_POST['email'] . "\r\n");
?>
<meta http-equiv="refresh" content="0; url=<?echo $thankyou;?>"">
<?php
}
?>

A “sikeresmail.html”-nek mindössze annyi a dolga, hogy a küldés után tájékoztassa a látogatót, esetleg irányítsa vissza a kezdőlapra.

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Mail a webmesternek </TITLE>
</HEAD>
 
<BODY>
Leveledet sikeresen továbbítottuk!
</BODY>
</HTML>

Köszönet Zsolának, hogy figyelmeztetett a kód register globals off inkompatibilitására! – BlackY

Kapcsolódó bejegyzések:
  • Felhasznált php parancsok:isset mail Ez a leírás a HTML formok és a php kapcsolatát tervezi bemutatni, és rögtön készítünk is egy kis programot, amel …

  • Amikor regisztrálsz egy weboldalon, az oldal általában leellenőrzi, hogy a beírt e-mail címed szabályos formátumú-e. Ehhez szükségünk van egy sztringre (pl.: $em …

  • Na ez egy elég komoly tutorial, php és MySQL kell az elkészítéséhez! Első lépésként csináljunk egy MySQL táblát!CREATE TABLE `shoutbox` ( `id` INT(1 …

  • Weblapkészítés során ha egy olyan oldalt kell készíteni, hol egy vagy akár több input mező is van (regisztráció, kapcsolatfelvétel stb..), hasznos lehet megadni, …

  • Elsőnek készítsünk egy form-ot: A check.php-ben vegyünk fel egy változót:$pass = $_POST[“pass”]; Majd egy if feltétellel vizsgálju …

A cikket beküldte: Harder (http://blog.harder.hu)

36 hozzászólás

  1. Jandó Tamás says:

    Szia,
    Segítséget kérnék. A magyar ékezetes karakterek helyett mindenféle krixkraxok jelennek meg.
    Hogy tudom megoldani hogy megjöjjenek a karakterek rendesen?

    Köszi a válaszodat előre is

  2. Vargas says:

    Üdv.
    Segítségre lenne szükségem. Uw-s tárhelyre felmásoltam a 2 html-t és a Php-t, de nem küld e-mailt. Mit kell még tennem?

  3. Vargas says:

    Közben sikerült megoldani. Nagyon jó kis script! köszönöm!

  4. Zöld Zoltán says:

    Jandó Tamásnak/ Tamás az index.html karakterkódolását állítsd át UTF8-ra. Nekem így működik rendesen.

  5. Culram says:

    Hát nekem még nem sikerült megoldani.
    Megírná valaki a megoldást?
    Én extra.hu-n használnám.
    Köszi

  6. Culram says:

    Na jó, most valahogy még is megy az extráról küldés. De az ékezetes betűk nem jól jelennek meg a levélben. Mindegyik file-ba beraktam padig az UTF-8-at, de akkor sem úgy jön meg a levél.

  7. Atisz says:

    Nagyon jó a kis script! Csak nekem is ez az ékezetes dolog a problémám. :( Pedig a kitöltendő fájlban (index.html) utf-8 van beállítva ()

    Miért lehet ez? Sőt a mezőknél is beállítottam a magyart (), bár lehet, hogy ez felesleges. :)

    Pls, fontos lenne a válasz!

  8. Tom says:

    Sziasztok próbálgatom a dolgot de mindig azt írja ki, hogy nem adtam meg e-mail címet pedig igen… Tudna valaki mondani erről valamit.

  9. amatyi says:

    Sziasztok! Hogyan tudom bővíteni mondjuk egy telefonszámmal és egy címmel?

    Addig eljutottam, hogy a htmlben csináltam 2 új bekérő mezőt. De a mail.phpban mit kell beleírnom?

    Segítsetek légyszíves, előre is köszönöm.

  10. Culram says:

    Ezt cseréld ki a php-ben, és az új mezők neve legyen telefon és cim:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    // innentől kezdve már ne módosíts semmit
    function check($postArg) { return (IsSet($_POST[$postArg]) &amp;&amp; !Empty($_POST[$postArg])); }
     
    if(!check('email')){
    ?&gt;
    Nem adtál meg mail címet, nyomd meg a VISSZA gombot.
     
    Nem adtál meg nevet, nyomd meg a VISSZA gombot.
     
    Nem írtál be üzenetet, nyomd meg a VISSZA gombot.
     
    Nem írtál be telefonszámot, nyomd meg a VISSZA gombot.
     
    Nem írtál be címet, nyomd meg a VISSZA gombot.
     
    &lt;meta http-equiv="refresh" content="0; url=""&gt;

    Az előző hozzászólást kérem töröljék!

  11. Sziasztok én is segítségre szorulnék. Nextarhely-es vagyok és amikor rákattintok az elküld gombra kiírja h “Error 404! /%3c File not found ! De az emailt ennek ellenére elküldi, mi lehet a gond ?

    Előre is kösz a segítséget !

  12. Laukó Zoli says:

    Sziasztok!

    A kódolásról annyit, hogy nálam úgy működik, hogy ANSI-be mentem és iso-8859-1 a kódolás. Eddig utf-8-al próbálkoztam, de vagy nem működött, vagy az ékezetes karaktereket nem jelenítette meg megfelelően. Ha valaki tud erre magyaráztatot írja meg köszi!

  13. pepe says:

    2004-es cikk úgyse foglalkoznak vele sajnos :( pedig nekem is ez a problémám.

  14. Culram says:

    Na ha minden törik és szakad… Korábban nekem is előjöttek ezek a problémák. Ezért kerestem valami kiforrottabb megoldást.

    Amit találtam az pár (asszem 3) fájlból áll, könnyű konfigolni, és szépen küld HTML formátumú emaileket is. http://phpmailer.codeworxtech.com/index.php

    A probléma csak annyi hogy a szolgáltató email kliensét használja, és ha azon limitálva van a kimenő mennyiség akkor ott megakadunk.

  15. amatyi says:

    Sziasztok újra!

    Szeretném checkboxos funkcióval is kibővíteni. A htmlben könnyen megtudom oldani, de sajnos a phpban fogalmam sincs, hogy hogyan kell beállítani. Tudnátok segíteni?!

  16. amatyi says:

    Sziasztok, újra lenne egy kérdésem :)

    Szeretném checkboxxal is kiegészíteni, tudnátok segíteni? :)

  17. Bertalan says:

    Szia, köszönöm, hogy megosztottad velem ezt a nagyon ügyes kis e-mail-küldő szolgáltatást. Lenne viszont egy két kérésem még ezzel kapcsolatban (mivel nem konyítok php-hez):
    Szóval megoldható lenne-e, hogy nem kitöltött név/e-mail cim/szöveg esetén hibaüzenet helyett a sikeres elküldéshez hasonlóan egy/három html-t hívna meg. Továbbá érdekelne még egy checkbox is aminek bejelölése esetén a számomra elküldött üzenetről egy másolatot kapna a küldő esetleg egy kis fejléccel egyutt, hogy pl.: Ön Dátum/Óra -kor ezt az üzenetet küldte a www.tehonlapod.hu cimről: …….

    előre is köszönöm a segítséget

  18. Sziasztok.
    Van egy oldalam amiben szeretnék egy egyszerű név és email cim regisztrációt és hogy elküldje az email cimemre.Tudd e valaki nekem segiteni ebben. Előre is megköszönöm

    Balogh Csaba

  19. Grachow says:

    Szuper a script. Viszont én FW-ről szeretném használni, onnét nem működik. Mi a megoldás?

  20. Tibor says:

    Csináltam egy űrlapot /html / php – ban szeretném működésre bírni, de nem igazán működnek a scriptek / vagy inkább nem jól csinálom /. Segítséget, ill. keresek olyan embert, aki helyre teszi a dolgokat.

  21. András says:

    Hogyan tudnék újjabb mezőket hozzá adni?

  22. Andrew says:

    Minden szuperül megy, viszont a karakterkódolás mindenképpen problémás.
    Tudna valaki segíteni, hogyan tudám átállítani? Elvileg utf-8-ba ment.

  23. atyaeg1 says:

    Heló!

    web4-en lenne egy ilyen jellegű beágyazásom a honlapunknak. A levélküldő keret meg rublikák már megvannak, csak a parancsokkal van baj. LE tudnád nekem úgy írni, hogy kitörölsz belőle minden nem beleillő megjegyzést, mert nem akar sikerülni a beágyazása html-ben. Mivel autómatikusan ki van írva a nem adtál meg emailt, meg nevet meg sikerült a küldés szövegek, anélkül, hogy a küldés gombra kattintottam volna majd pedig tovább viszi a honlapot egy üres oldalra.

    E-mailben, ha elküldenéd nekem, akkor azért nagyon hálás lennék.

    Köszönöm előre is a segítségedet!

  24. NB. says:

    atyaeg1: .php-ban mentetted a fájlt?

  25. atyaeg1 says:

    html formátumra van lehetőség csak az oldalon. Hogyan tudom menteni php-ban?

  26. NB. says:

    A .htm vagy .html helyett .php-t írsz… Ha van php installálva.

  27. atyaeg1 says:

    köszi már sikerült megoldanom egy másik kóddal

  28. NB. says:

    Ja, mailto:-tel? Csak az a beépített levelezőt nyitja meg, ami kényelmetlen. Ezzel szerverről küldhetsz.

  29. NB. says:

    Mármint a gépeden telepítentt vagy böngészőben beállított.

  30. Danika says:

    Hello!
    Betettem a weboldalamba (www.spotbazar.hu) de nem küldi el a levelet. A szerveren nincsen gond, mert a webmailből tudok küldeni és fogadni is. Apró módosításokat tettem a kapcsolat mezőbe, de csak az index.html-be hogy fehér legyen a betű. Mi lehet a probléma?

  31. North Sea says:

    Nagyon köszönöm a scriptet. Nekem műxik. Minden OK.
    Sokat segítettetek.

  32. judikka says:

    Szuper! Működik. Köszi!

  33. Bence says:

    Köszi a scriptet nagyon jól működik!
    Egy olyan extrával szeretném kiegészíteni hogy amikor rákattintunk a Küldés gombra ne a ….html oldal nyíljon meg,hanem egy pop up ugorjon fel és ott Köszönném meg a regisztrálását/írást.És ezt le lehetne okézni.
    Ebben valaki tudna segíteni?
    Köszi Bence

  34. Márk says:

    sziasztok

    Nekem egy olyan problémám lenne ha kitölti a küldő rendesen az email címét akkor nem jön semmi üzenet. A visszajelzés meg jo. Ez mi okozhatja???

  35. Királyok avgytok!
    Köszönöm a tutorialt sokat próbálkoztam már elötte és nem ment ,de ezzel sikerült!

    Egy kérdésem még volna ha azt szeretném hogy legyen egy mező ahová a mellette lévő két számot kell mondjuk összeadni és az a 2 szám mindig cserélődjön (tehát ne mindig ugyan azokat a számokat kelljen összeadnia hanem frissítésnél frissüljön az is ) és ha jól adta össze csak akkor küldhesse el az e-mailt. Ez a botok ellen jelentene védelmet.

  36. BugHunter says:

    Sziasztok,

    Az ékezetes karakterekkel kapcsolatban ez megoldás lehet:

    mail($youremail, $subject, $message1, “From: ” . $_POST[‘email’] . “\r\nReply-to: ” . $_POST[‘email’] . “\r\nContent-Type: text/html; charset=utf-8\r\n”);

    Így UTF-8 kódolással küldi ki a levelet a rendszer. Ámbár megjegyzem, hogy az ilyen fajta küldés gyakran levélszemétként landol a címzett levelesládájában.

Szólj hozzá
a Email küldő szolgáltatás c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>