Autor | Zpráva | ||
---|---|---|---|
zimmi Profil |
#1 · Zasláno: 8. 7. 2008, 16:11:16
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 |
#2 · Zasláno: 8. 7. 2008, 16:19:45
cz.php.net/mail
jak mas nastavenou hlavicku mailu? |
||
zimmi Profil |
#3 · Zasláno: 8. 7. 2008, 16:21:25
$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 |
#4 · Zasláno: 8. 7. 2008, 16:37:29
zimmi
No nefunguje? |
||
zimmi Profil |
#5 · Zasláno: 8. 7. 2008, 16:38:02
kletely: No nefunguje :).
|
||
kletely Profil |
#6 · Zasláno: 8. 7. 2008, 16:40:17
zimmi
Skús tam pridať to to: $text_mailu = Base64_Encode($text_mailu); $text_mailu = Base64_Encode($text_mailu); |
||
zimmi Profil |
#7 · Zasláno: 8. 7. 2008, 16:42:04
kletely: A výsledek... chvíle napětí: TmF6ZMOhcmVrLCBuYXJhemlsIGpzZW0gbmEgd3d3LmplZG5vdS12ZXRvdS5jeiBhIG15c2 zDrW0sIMW+ZSBieSBzZSB0aSB0byBtb2hsbyBkb2NlbGEgbMOtYml0LiBBxb4gYnVkZcWh IG3DrXQgxI1hcywgbXJrbmkgc2Uu
|
||
kletely Profil |
#8 · Zasláno: 8. 7. 2008, 16:55:59
zimmi
To je mi nejaké divné lebo mne to funguje :) |
||
zimmi Profil |
#9 · Zasláno: 8. 7. 2008, 16:57:29
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 * |
#10 · Zasláno: 8. 7. 2008, 17:04:40
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 |
#11 · Zasláno: 8. 7. 2008, 17:18:17
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 |
#12 · Zasláno: 8. 7. 2008, 18:53:21 · Upravil/a: Jack Finger
mě funguje tohle pro předmět:
$subject = "=?utf-8?B?" . base64_encode($subject) . "?="; $subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
a do hlavičky ještě: $header .= "MIME-Version: 1.0\n"; $header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=utf-8\n";
|
||
zimmi Profil |
#13 · Zasláno: 8. 7. 2008, 18:54:21
Jack Finger: Jo, předmět mám ok, ale tělo zprávy ne a ne správně.
|
||
Jack Finger Profil |
#14 · Zasláno: 8. 7. 2008, 19:00:42
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 |
#15 · Zasláno: 8. 7. 2008, 19:46:44
|
||
zimmi Profil |
#16 · Zasláno: 8. 7. 2008, 19:54:53
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 |
#17 · Zasláno: 8. 7. 2008, 21:59:36
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 |
#18 · Zasláno: 8. 7. 2008, 22:14:39
mně funguje tato funkce
1function cz_mail ($to, $predmet, $zprava, $head = "", $kod) 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 |
#19 · Zasláno: 9. 7. 2008, 11:24:18
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 |
#20 · Zasláno: 9. 7. 2008, 21:05:36
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 :) |
||
Časová prodleva: 6 dní
|
|||
Sylar Profil * |
#21 · Zasláno: 16. 7. 2008, 07:24:43
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 |
#22 · Zasláno: 16. 7. 2008, 10:01:36
Sylar
aha :-) zapomněl jsem zakódovat base64_encode() i ostatní hlavičky, doplň to |
||
Sylar Profil * |
#23 · Zasláno: 16. 7. 2008, 15:42:42
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>)."?="; "=?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 |
#24 · Zasláno: 16. 7. 2008, 17:42:06
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 * |
#25 · Zasláno: 16. 7. 2008, 18:28:32
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 |
#26 · Zasláno: 16. 7. 2008, 19:57:30
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"; "From: =?UTF-8?B?".base64_encode("Moje Jméno")."?=<ja@email.cz> /r/n"; |
||
Sylar Profil * |
#27 · Zasláno: 16. 7. 2008, 20:18:50
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ě 1$subject = "=?utf-8?B?".base64_encode("Příliš Žluťoučký kůň")."?="; $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"; "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 |
#28 · Zasláno: 16. 7. 2008, 20:32:38
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) |
||
Časová prodleva: 3 roky
|
|||
ronald Profil * |
#29 · Zasláno: 10. 2. 2011, 23:50:03
[#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 ??? |
||
Časová prodleva: 2 roky
|
|||
enforum Profil * |
#30 · Zasláno: 6. 2. 2013, 14:15:37
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. |
||
Téma pokračuje na další straně.
|
0