Rozchodil jsem posílání mailů, ovšem mám problém s předmětem. Za předmět napsaný v tom formuláři se přidá MIME-Version: 1.0 takže ve výsledku to vypadá nejakypredmetMIME-Version... Pokud se nepletu tak je to část obsahu co má být v hlavičce, ale jak se tam dostal?
Nevíte někdo jak se toho zbavit? Použil jsem odesílací skript z jakpsatweb.cz a zakomponoval jsem ho do svého formuláře. Pro jistotu přikládám i ten formulář pro korekci. Moc php neumím a tak budu rád za rady. Děkuju moc.
Kontaktní formulář:
Kód: Vybrat vše
<form action="../skripty/mail.php" method="post">
Váš mail: <input name="odesilatel" size="20"><br>
Příjemce: <select name=komu><option value="neco@nekde">tech. podpora</option><option value="nic">nekdo</option></select>
Předmět: <input name="predmet" size="40"><br>
Zpráva: <textarea name="zprava" rows="4" cols="15"></textarea><br>
<input type="submit" value="Odeslat">
</form>
Obsah mail.php:
Kód: Vybrat vše
<?php
/* *************** diskuse.jakpsatweb.cz *** PHP FAQ ********************** */
function autoUTF($s)
{
// detect UTF-8
if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s))
return $s;
// detect WINDOWS-1250
if (preg_match('#[\x7F-\x9F\xBC]#', $s))
return iconv('WINDOWS-1250', 'UTF-8', $s);
// assume ISO-8859-2
return iconv('ISO-8859-2', 'UTF-8', $s);
}
function cs_mail ($to, $predmet, $zprava, $head = "")
{ $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?=";
$head .= "MIME-Version: 1.0\n";
$head .= "Content-Type: text/plain; charset=\"utf-8\"\n";
$head .= "Content-Transfer-Encoding: base64\n";
$zprava = base64_encode (autoUTF ($zprava));
return mail ($to, $predmet, $zprava, $head); }
/* ********************************************************************** ** */
$predmet = $_POST['predmet'];
$zprava = $_POST['zprava'];
$komu = $_POST['komu'];
$odesilatel = $_POST['odesilatel'];
$from = "From: $odesilatel";
$mail = $komu;
$kon = cs_mail ($mail, $predmet, $zprava, $from);
if ($kon)
echo "E-mail byl úspěšně odeslán.<br>";
else
echo "E-mail se bohužel nepodařilo odeslat.<br>";
?>