Autor Zpráva
Tomáš Fuxa
Profil
Mám php script na odeslání formuláře na mail, ale po odeslání se v mailu nezobrazují písmena s diakritikou.
Jak využiju kódování UTF-8 v php pro správnos funkce? Děkuji moc!
Příklad mého scriptu:

<?php
$to = "3mail@centrum.cz";
$extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n";
$subject = "Vzkaz od ".$_POST['jmeno']."";
$mess = "Jméno: ".$_POST['jmeno']."\nEmail: ".$_POST['email']."\nTelefon: ".$_POST['telefon']."\nZpráva:\n".$_POST['zprava']."";
mail ($to, $subject, $mess, $extra);
?>
<html><head>
<meta http-equiv="refresh" content="0; url=kontakt.php">
<title>Přesměrování...</title>
</head><body></body></html>
juriad
Profil
Česká diakritika v mailech
Tomáš Fuxa
Profil
Zkouše jsem vše, podle návodů, ale stále mi z formuláře chodí emaily, kde se veškerá písmena obsahující diakritiku nezobrazují.
jenikkozak
Profil
Jaký skript používáš nyní?
Tomáš Fuxa
Profil
Nyní používám
<?php

$to      = 'fixis2@centrum.cz';
$subject = 'Vzkaz od '.$_POST['jmeno'];
$message = "Jméno: ".$_POST['jmeno']."\nEmail: ".$_POST['email']."\nTelefon: ".$_POST['telefon']."\nZpráva:\n".$_POST['zprava'];
//$message = htmlentities($message);
$headers = 'MIME-Version: 1.0' . "\r\n" .
    'Content-type: text/html; charset=UTF-8' . "\r\n".
    'From: '.$_POST['email'] . "\r\n" .
    'Reply-To: '.$_POST['email'] . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);


?>
<html><head>
<meta http-equiv="refresh" content="0; url=kontakt.php">
<title>Přesměrování...</title>
juriad
Profil
A proč nepoužiješ přesně to, co jsem odkázal? To je ověřený postup:
function cs_mail($to, $predmet, $zprava, $head = "")
{
    $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
    $head .= "MIME-Version: 1.0".PHP_EOL;
    $head .= "Content-Type: text/plain; charset=\"utf-8\"".PHP_EOL;
    $head .= "Content-Transfer-Encoding: base64".PHP_EOL;
    $zprava = wordwrap(base64_encode(autoUTF($zprava)), 78, PHP_EOL, true);
    return mail($to, $predmet, $zprava, $head);
}

Pokud máš stránku v UTF-8, nemusíš řešit funkci autoUTF a předat rovnou zprávu funkci base64_encode.
Tomáš Fuxa
Profil
Tak jsem to odzkoušel a chodí to stále stejně. Pokud je to ověřený script, je možné, že by mohla být chyba zobrazení v emailové schránce? Konkrétně tady, používám centrum email, ale jen zkušebně, na odzkoušení, než to bude v provozu.


Tak je to přesně, jak jsem psal, problém je v emailu na centrumu. Nastavil jsem jako doručovací adresu Gmail a už to běží.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: