Autor | Zpráva | ||
---|---|---|---|
Janny Profil * |
#1 · Zasláno: 29. 8. 2007, 20:46:09
Ahoj,
mohl by mi prosím dát někdo odkaz na zpracované odeslání mailu z webu, ve kterém jsou vyřešeny následující věci: 1. správné zobrazování češtiny i v předmětu mailu 2. možnost odesílání přílohy 3. ochrana proti spamovacím robotům |
||
tiso Profil |
#2 · Zasláno: 29. 8. 2007, 20:58:18
1. - 2. http://pear.php.net/package/Mail
|
||
Janny Profil * |
#3 · Zasláno: 29. 8. 2007, 22:02:50
možná bych se spokojil i s 1. podmínkou, kdyby to bylo spolehlivě udělané
|
||
djlj Profil |
#4 · Zasláno: 29. 8. 2007, 22:07:50
Nestačil by http://vsevjednom.cz/?page=formular?
|
||
Janny Profil * |
#5 · Zasláno: 29. 8. 2007, 22:55:26
NE, dobrá, slevuji ze svých požadavků:
Chci skriptík, který umí odeslat mail se správnou diakritikou z formuláře na stránce s kódováním charset=windows-1250 a to jak v těle zprávy, tak v předmětu. Musí tam být možnost vložit mail odesílatele. Děkuju a těším se ;-) |
||
Alphard Profil |
#6 · Zasláno: 29. 8. 2007, 23:05:32
http://tvorba-www.webz.cz/php/php/azphp360.htm
http://php.vrana.cz/kodovani-hlavicek-e-mailu.php tady by mělo být všechno, html formulář snad poskládáš sama |
||
DoubleThink Profil * |
#7 · Zasláno: 29. 8. 2007, 23:14:18
|
||
Janny Profil * |
#8 · Zasláno: 29. 8. 2007, 23:36:24
Je to takhle správně?
<form action="mail.html" method="post"> <input name="email" size="25" value="Váš e-ma@il"><br> <input name="predmet" size="25" value="Předmět zprávy"><br> <textarea name="zprava" rows="6" cols="55"></textarea><br> <input type="submit" value="Odeslat"> </form> <? php $predmet = $_POST['predmet']; $emailodesilatele = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; $komu = "janue@seznam.cz"; function odesli_mail($komu, $predmet, $zprava) { $hlavicka = "MIME-Version: 1.0 "; $hlavicka.= "Content-Type: text/plain; charset="windows-1250" "; $hlavicka.= "Content-Transfer-Encoding: base64 "; $hlavicka.= "From: $emailodesilatele "; $hlavicka.= "Reply-To: $emailodesilatele "; $telo = Base64_Encode($zprava); $predmet = zakoduj($predmet); if(mail($komu, $predmet, $zprava, $hlavicka)) return TRUE; else return FALSE; ?> |
||
Alphard Profil |
#9 · Zasláno: 29. 8. 2007, 23:46:42 · Upravil/a: Alphard
$spam = $_POST['spam']; je jaksi navíc :-)
nebylo by špatné ověřit to if (isset ($_POST['predmet'])) $predmet = $_POST['predmet']; atd. $predmet = zakoduj($predmet); nemáš definovanou funkci zakoduj() nepředáváš $emailodesilatele funkci odesli_mail() musíš na závěr zavolat odesli_mail($komu, $predmet, $zprava) jo a mezi <? a php se nedělá mezera, jenom <?php |
||
Alphard Profil |
#10 · Zasláno: 29. 8. 2007, 23:58:45
možná toho chceš moc najednou, začni na jednodušším příkladu a zkoušej postupně upravit
|
||
Janny Profil * |
#11 · Zasláno: 29. 8. 2007, 23:59:32
A co teď??
<pre> <form action="mail.html" method="post"> <input name="email" size="25" value="Váš e-ma@il"><br> <input name="predmet" size="25" value="Předmět zprávy"><br> <textarea name="zprava" rows="6" cols="55"></textarea><br> <input type="submit" value="Odeslat"> </form> <?php $predmet = $_POST['predmet']; $emailodesilatele = $_POST['email']; $zprava = $_POST['zprava']; $komu = "janue@seznam.cz"; function zakoduj($text) { return "=?utf-8?B?".base64_encode($text)."?="; } function odesli_mail($komu, $predmet, $zprava) { $hlavicka = "MIME-Version: 1.0 "; $hlavicka.= "Content-Type: text/plain; charset="windows-1250" "; $hlavicka.= "Content-Transfer-Encoding: base64 "; $hlavicka.= "From: $emailodesilatele "; $hlavicka.= "Reply-To: $emailodesilatele "; $telo = Base64_Encode($zprava); $predmet = zakoduj($predmet); if(mail($komu, $predmet, $zprava, $hlavicka)) return TRUE; else return FALSE; odesli_mail($komu, $predmet, $zprava) ?> </pre> |
||
Janny Profil * |
#12 · Zasláno: 30. 8. 2007, 00:03:04
to: Alphard
Oka, a jak do toho kusu kódu od tebe zakomponovat function zakoduj($text) { return "=?utf-8?B?".base64_encode($text)."?="; } respektive, jak zakódovat tu hlavičku? |
||
Janny Profil * |
#13 · Zasláno: 30. 8. 2007, 00:07:13
Takto?
<form action="mail.html" method="post"> <input name="email" size="25" value="Váš e-ma@il"><br> <input name="predmet" size="25" value="Předmět zprávy"><br> <textarea name="zprava" rows="6" cols="55"></textarea><br> <input type="submit" value="Odeslat"> </form> <?php $predmet = $_POST['predmet']; $emailodesilatele = $_POST['email']; $zprava = $_POST['zprava']; $komu = "janue@seznam.cz"; $hlavicky = "From: ".$emailodesilatele." "; $hlavicky .= "Reply-To: ".$emailodesilatele." "; $hlavicky .= "Content-Type: text/plain; charset=windows-1250 "; function zakoduj($text) { return "=?utf-8?B?".base64_encode($text)."?="; } $predmet = zakoduj($predmet); if(mail($komu, $predmet, $zprava, $hlavicky)) echo "odesláno"; else echo "nepodařilo se odeslat"; ?> |
||
Janny Profil * |
#14 · Zasláno: 30. 8. 2007, 00:12:50
<form action="mail.html" method="post">
<input name="email" size="25" value="Váš e-ma@il"><br> <input name="predmet" size="25" value="Předmět zprávy"><br> <textarea name="zprava" rows="6" cols="55"></textarea><br> <input type="submit" value="Odeslat"> </form> <?php $predmet = $_POST['predmet']; $emailodesilatele = $_POST['email']; $zprava = $_POST['zprava']; $komu = "janue@seznam.cz"; $hlavicky = "From: ".$emailodesilatele." "; $hlavicky .= "Reply-To: ".$emailodesilatele." "; $hlavicky .= "Content-Type: text/plain; charset=windows-1250 "; function zakoduj($text) { return "=?utf-8?B?".base64_encode($text)."?="; } $predmet = zakoduj($predmet); if(mail($komu, $predmet, $zprava, $hlavicky)) echo "odesláno"; else echo "nepodařilo se odeslat"; ?> Už mi to funguje, ale došlý mail má opět místo diakritických znaků otazní ky :-( |
||
Alphard Profil |
#15 · Zasláno: 30. 8. 2007, 00:13:38 · Upravil/a: Alphard
function zakoduj($text, $encoding = "utf-8") {
return "=?$encoding?Q?" . imap_8bit($text) . "?="; } $predmet = $_POST['predmet']; $emailodesilatele = $_POST['email']; $zprava = $_POST['zprava']; $komu = "janue@seznam.cz"; $hlavicky = "From: ".$emailodesilatele." "; $hlavicky .= "Reply-To: ".$emailodesilatele." "; $hlavicky .= "Content-Type: text/plain; charset=windows1250 "; if(mail($komu, zakoduj ($predmet, "windows1250"), $zprava, $hlavicky)) echo "odesláno"; else echo "nepodařilo se odeslat"; zkus odeslat e-mail, já neuvidím všechny chyby, když tam je syntaktická chyba, tak php označí řádek, když logická, tak se bude hledat podle důsledků |
||
Alphard Profil |
#16 · Zasláno: 30. 8. 2007, 00:40:01 · Upravil/a: Alphard
tohle by mělo fungovat:
|
||
MarekOdehnal Profil * |
#17 · Zasláno: 30. 8. 2007, 17:38:55
Děkuji všem za projevenou ochotu pomoci, především Alphard už to mám vyřešené, prosím o zamčení tématu.
|
||
Časová prodleva: 17 let
|
0