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.

<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.

<?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.

<!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

Harder

Harder

Profil

Korábbi hozzászólások (36)

A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.

  1. Jandó Tamás

    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

    Ü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

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

  4. Zöld Zoltán

    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

    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

    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

    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

    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. amatyiwww.bmg.try.hu

    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

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

    // 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.

    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.

    <meta http-equiv="refresh" content="0; url="">

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

  11. Búgócsigavaniliaskarika.info

    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

    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!

További 24 hozzászólás-szál megjelenítése
  1. pepewww.electronation.hu

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

  2. Culram

    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.

  3. amatyiwww.bathorimatyas.extra.hu

    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?!

  4. amatyiwww.bathorimatyas.extra.hu

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

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

  5. Bertalan

    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

  6. Balogh Csabawww.doba.home.ro

    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

  7. Grachow

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

  8. Tibor

    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.

  9. András

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

  10. Andrew

    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.

  11. atyaeg1mkh.web4.hu

    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!

  12. NB.

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

  13. atyaeg1mkh.web4.hu

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

  14. NB.

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

  15. atyaeg1mkh.web4.hu

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

  16. NB.

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

  17. NB.

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

  18. Danikawww.spotbazar.hu

    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?

  19. North Seanorthsea.hu

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

  20. judikka

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

  21. Bence

    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

  22. Márk

    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???

  23. Maróti Tamásnincs

    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.

  24. BugHunter

    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.

Van hozzáfűznivalód? Írj nekem közvetlenül.

Kapcsolat