« 1 2 »
Autor Zpráva
zimmi
Profil
Zdravím diskusi,
bedlivě jsem prošel všechna vlákna týkající se problému diakritiky v mailech odesílaných pomocí php fce mail(). Nicméně stále nejsem schopen dosáhnout toho, aby se diakritika zobrazovala korektně (kromě GMailu, který nemá problém). Hlavička stránky je nastavena na utf-8, hlavička e-mailu je nastavena na utf-8, přesto se diakritika mrší. Umí ji vůbec mail klienti a freemaily zpracovat v kódování UTF-8? Nebo se snažím marně?
peta
Profil
cz.php.net/mail
jak mas nastavenou hlavicku mailu?
zimmi
Profil
$hlavicka = "MIME-Version: 1.0\n";
$hlavicka.= "Content-Type: text/plain; charset=utf-8\r\n";
$hlavicka.= "Content-Transfer-Encoding: base64\r\n";
kletely
Profil
zimmi
No nefunguje?
zimmi
Profil
kletely: No nefunguje :).
kletely
Profil
zimmi
Skús tam pridať to to:
$text_mailu = Base64_Encode($text_mailu);
aj keď to nie je najlepšie riešenie, ale zato by to malo fungovať.
zimmi
Profil
kletely: A výsledek... chvíle napětí: TmF6ZMOhcmVrLCBuYXJhemlsIGpzZW0gbmEgd3d3LmplZG5vdS12ZXRvdS5jeiBhIG15c2 zDrW0sIMW+ZSBieSBzZSB0aSB0byBtb2hsbyBkb2NlbGEgbMOtYml0LiBBxb4gYnVkZcWh IG3DrXQgxI1hcywgbXJrbmkgc2Uu
kletely
Profil
zimmi
To je mi nejaké divné lebo mne to funguje :)
zimmi
Profil
kletely: Předpokládám, že to patří před odeslání mailu, že? Kam jinam taky. Potom mi ale e-mail opravdu přichází jako tahle změť písmen.
angrešt
Profil *
jistě, protože base64_encode ti ten string zakóduje //zpětně ho dekóduješ fcí base64_decode
nevím co to má s diakritikou společnýho
zimmi
Profil
angrešt:Tak potom se tedy ptám, jestli existuje nějaká možnost, jak ten mail v utf-8 bez problémů odeslat? Mám to kódování nastavené snad na všech myslitelných místech, a přesto to blbne.
Tohle s ním udělá centrum: myslĂ­m, Ĺľe by se ti to mohlo docela lĂ­bit. AĹľ budeĹ mĂ­t ÄŤas, mrkni se.
Jack Finger
Profil
mě funguje tohle pro předmět:
$subject = "=?utf-8?B?" . base64_encode($subject) . "?=";

a do hlavičky ještě:
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=utf-8\n";
zimmi
Profil
Jack Finger: Jo, předmět mám ok, ale tělo zprávy ne a ne správně.
Jack Finger
Profil
zimmi
tak to nevím, mě stačí jen nastavit ty hlavičky. a pak musí být samozřejmě soubor v utf8 a meta tagy na utf8
Nox
Profil
http://hrazdil.info/posilani-mailu-php-phpmailer/
zimmi
Profil
Nox: Ale jo, na to jsem se taky díval. Nechci se v tom rýpat, když tomu nerozumím. Navíc mi to připadá trochu jako kanón na komáry.
Aesir
Profil
zimmi:

Dost často lze vykoukat problém z hlaviček doručeného e-mailu. MTA s tím ještě dokáží věci ;)
Zkuste nějaký e-mail rozpitvat a hodit sem komplet hlavičky.
Alphard
Profil
mně funguje tato funkce
function cz_mail ($to, $predmet, $zprava, $head = "", $kod)
       {  $predmet = "=?utf-8?B?".base64_encode(iconv($kod, "UTF-8", $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 (iconv ($kod, "UTF-8", $zprava));
          $stav = mail ($to, $predmet, $zprava, $head);
          if ($stav) return TRUE; else return FALSE;  }

a parametry:
$to – email příjemce
$predmet – předmět
$zprava – zpráva
$head – přídavné hlavičky, např. From, ...
$kod – vstupní kódování, např. ISO-8859-2
zimmi
Profil
Aesir A ty dostanu z mailu jak? :)

Alphard Já mám výchozí kódování nastaveno na utf-8, tak asi není nutné ho iconvem předělat zase na utf-8.
Aesir
Profil
zimmi:

Každý rozumný mailový klient by je měl dokázat zobrazit, nevím jak webové rozhraní, tam se moc neorientuji. Například v Thunderbirdu je to tuším zobrati záhlaví nebo tak něco :)
Sylar
Profil *
Mě jediné co blbne s diakritikou v mailu je From : Krásné stránečky ... se zobrazí jako From : Kr??sn?? str??ne??ky ... $subject už jsem díky Alphardovo kodu zprovoznil - díky - a ostatní text mi fungoval v pořádku už dřív ...

Nevíte prosím něco co s tou hlavičkou ? už fakt nevim
Alphard
Profil
Sylar
aha :-) zapomněl jsem zakódovat base64_encode() i ostatní hlavičky, doplň to
Sylar
Profil *
Alphard
to už jsem zkoušel ... tedy nevím jestli to bylo dobře, každopádně mi to vyhodilo zpět ten hash base64_encode
"=?utf-8?B?".base64_encode("From: Moje Jméno <ja@email.cz>)."?=";

"From:"."=?utf-8?B?".base64_encode("Moje Jméno <ja@email.cz>)."?=";

Tyhle dvě varianty jsem zkoušel, ale správně asi nebudou ... mohl by ses pokusit je opravit ?
Radim Hejhal
Profil
Funknční řešení jsem napsal v tomto tématu - Kódování v mailu. Není to úplně ideální, ale vyzkoušené na Seznam mailu a Gmailu. Jestli to funguje třeba i v Thunderbirdu jsem nezkoušel, ale nevidím důvod proč by nemělo. Kdyžtak někdo upozorněte. Stejně se to budu snažit udělat jednoduššeji, když na něco přijdu, napíši to tam.
Sylar
Profil *
Radim Hejhal
Ano taky jsem na to koukal, ale to neustálý přehazování kodování se mi tam teda taky moc nelíbí ... ale pokud nebude jiná možnost díky i za to :-)
Radim Hejhal
Profil
Sylar
Tak jsem to opravil, nová verze v odkazované diskuzi. Tvůj příklad by tedy správně měl být tahle:
"From: =?UTF-8?B?".base64_encode("Moje Jméno")."?=<ja@email.cz> /r/n";
Sylar
Profil *
Radim Hejhal
Už nevim do které diskuse mám odpovídat :D ... ale jinak super, funguje to parádně :-) Díky moc ...
Moje verze je tedy konečná takto a funguje to perfektně
$subject = "=?utf-8?B?".base64_encode("Příliš Žluťoučký kůň")."?=";
        $headers = "MIME-Version: 1.0\n";
        $headers .= "Content-Type: text/plain; charset=utf-8\n";
        $headers .= "From: =?UTF-8?B?".base64_encode("Ještě Žlouťoučtější kůň")."?=<zluty@kun.cz>\n";;
        $sending = "Právě jste dostali e-mail od Příliš Žluťoučkého koně.";
        mail ($_POST['email'], $subject, $sending, $headers);

Jinak si tě ještě dovolím opravit, ty lomítka na konci
"From: =?UTF-8?B?".base64_encode("Moje Jméno")."?=<ja@email.cz> /r/n";

mají být zřejmě obráceně ne? :-)

Ale jinak supr. ještě jednou díky ... konečně to funguje atk jak chci a potřebuju
Radim Hejhal
Profil
Ano, samozřejmě mají být obráceně. Psal jsem to tu z hlavy a říkal jsem si že tu určitě bude zase nějaká chybka :o)
A rád jsem pomohl - i sobě :o)
ronald
Profil *
[#28] Radim Hejhal

Je nejaká možnosť ako sa zbaviť toho prázdneho radku čo sa dáva nad správu. Zrejme to tam dáva $headers ???
enforum
Profil *
Zdravím,

už to tu bylo popsáno... já používám toto nastavení hlavičky pro email:

www.remake.cz/blog/nastaveni-utf-8-hlavicky-emailu/

toto se mi osvědčilo.
« 1 2 »

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