Autor Zpráva
MilanJ
Profil
Následující kód používám pro odesílání emailů:


$headers = 'MIME-Version: 1.0' . " ";
$headers .= 'Content-type: text/plain; charset=utf-8' . " ";
Mail($_POST['email'],"Elektronické nákupy", "Děkujeme za vyplnění registračního formuláře!" , $headers);



Obsah zprávy je správně česky, tak jak má, ale problém je s češtinou v předmětu zprávy, je tam malá chybička: Elektronick�S nákupy ...prostě písmeno "é" bylo nahrazeno "�S". Proč?

Poradí někdo jak mít češtinu v emailu v pořádku?
nightfish
Profil
předmět musí být, v případě, že obsahuje jiné znaky než ASCII <= 127, zakódován jako quoted-printable

viz fci http://cz.php.net/imap_8bit
MilanJ
Profil
nightfish
Zkoušel jsem zakódovat celý předmět, ale to emailu přišel nesmysl: Elektronick=C3=A9 n=C3=A1kupy.

Předmět jsem uložil do proměnné $predmet = imap_8bit('Elektronické nákupy');, celá f-ce MAIL pak vypadala následovně:

Mail($_POST['email'], $predmet, "Děkujeme za vyplnění registračního formuláře!" , $headers);


Co dělám špatně?
nightfish
Profil
aaha, už to vidím
samotný předmět musí ještě obsahovat informaci o použitém kódování
takže buď (použití quoted-printable)
$predmet = "=?UTF-8?Q?" . imap_8bit('Elektronické nákupy'). "?=";
nebo (použití base64_encode)
$predmet = "=?UTF-8?B?" . base64_encode('Elektronické nákupy') . "?=";
Toto téma je uzamčeno. Odpověď nelze zaslat.