Stránka 1 z 1

PHP mail - prosím o kontrolu kódu

Napsal: 11 bře 2010 08:36
od Luke608
Ahoj lidi.
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>";
?>

Re: PHP mail - prosím o kontrolu kódu

Napsal: 11 bře 2010 13:51
od Luboš
Možná ti pomůže tento příspěvek z tohoto fóra.