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
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
Ü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?
Közben sikerült megoldani. Nagyon jó kis script! köszönöm!
Jandó Tamásnak/ Tamás az index.html karakterkódolását állítsd át UTF8-ra. Nekem így működik rendesen.
Hát nekem még nem sikerült megoldani.
Megírná valaki a megoldást?
Én extra.hu-n használnám.
Köszi
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.
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!
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.
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.
Ezt cseréld ki a php-ben, és az új mezők neve legyen telefon és cim:
Az előző hozzászólást kérem töröljék!
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 !
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!
2004-es cikk úgyse foglalkoznak vele sajnos :( pedig nekem is ez a problémám.
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.
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?!
Sziasztok, újra lenne egy kérdésem :)
Szeretném checkboxxal is kiegészíteni, tudnátok segíteni? :)
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 http://www.tehonlapod.hu cimről: …….
előre is köszönöm a segítséget
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
Szuper a script. Viszont én FW-ről szeretném használni, onnét nem működik. Mi a megoldás?
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.
Hogyan tudnék újjabb mezőket hozzá adni?
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.
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!
atyaeg1: .php-ban mentetted a fájlt?
html formátumra van lehetőség csak az oldalon. Hogyan tudom menteni php-ban?
A .htm vagy .html helyett .php-t írsz… Ha van php installálva.
köszi már sikerült megoldanom egy másik kóddal
Ja, mailto:-tel? Csak az a beépített levelezőt nyitja meg, ami kényelmetlen. Ezzel szerverről küldhetsz.
Mármint a gépeden telepítentt vagy böngészőben beállított.
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?
Nagyon köszönöm a scriptet. Nekem műxik. Minden OK.
Sokat segítettetek.
Szuper! Működik. Köszi!
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
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???
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.
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.