Autor Zpráva
pitos
Profil *
Zdravím,
Když pošlu z webu zprávu přes kontaktní formulář a ten mi potom přijde na mail který mám na tiscali tak mi přijde ve špatném kódování čili nezobrazují se mi háčky a čárky nad písmeny.

Ale když to samé provedu ale nechám si to poslat na mail který mám na centrumu tak je to v pořádku.

Kde může být chyba, že tiscali nedokáže příjmout správně zprávu v utf-8?


$sender = $_POST['name'];
$return = $_POST['email'];
$message = nl2br($_POST['message']);

$to = "mujmail@centrum.cz";
$subject = "Zpráva z www";

$headers = "From: " . strip_tags($return) . "\r\n";
$headers .= "Reply-To: ". strip_tags($return) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";


$msg = "<html><body>";
$msg .= "<h2 style='font-weight:bold;border-bottom:1px solid #bbb;'>Nová zpráva z www</h2>\r\n";
$msg .= "Jméno odesilatele: <strong>".$sender."</strong><br />\r\n";
$msg .= "Email odesilatele: <strong>".$return."</strong><br /><br />\r\n";
$msg .= "Zpráva: <br />\r\n";
$msg .= "<em>".$message."</em><br />\r\n";
$msg .= "</body></html>";

if(@mail($to, $subject, $msg, $headers)) {
    echo "yes";
} else {
    echo "no";
}
Juraj Hajdúch
Profil
Problematika kódovania emailu (a jeho hlavičky) sa tu rozoberala už viackrát, napr. vo vlákne Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky. alebo Nefungující skript na odesílání formuláře. Skúste sa tam pozrieť.

Skontrolujte si, aké kódovanie deklaruje tiscali na stránke (meta tag v hlavičke), kde zobrazuje aj príslušný email, možná kolízia (ovšem nepredpokladám to).

Email posielate ako 'text/html', ale chýba vám tam hlavička (<head>) a v nej príslušný meta tag kódovania. Ak sa email posiela ako html, tak by mal kód správy obsahovať všetky náležitosti ako klasická stránka.

Namiesto sekvencie '\r\n' je lepšie použiť konštantu 'PHP_EOL' (automaticky detekuje linux/windows).
lionel messi
Profil
pitos:
Okrem toho, čo uviedol Juraj Hajdúch, dodám priamy odkaz na návod: Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky..

Pár poznámok ku kódu:

1. Používať operátor @ na potláčanie chýb nie je najlepší nápad.
2. Funkcia strip_tags je nevhodne použitá (ak ochrana pred XSS, tak jedine htmlspecialchars a je otázne, či je v tomto prípade vôbec potrebná).
bestik_63
Profil
zkus použít knihovnu phpmailer a vyhneš se podobným problémům.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0