Autor Zpráva
pan.kolouch
Profil *
Jak jsem tak pročítal forum, došel jsem k závěru, že pomocí funkce mail, nelze poslat předmět emailu s diakritikou. Je to pravda ?? Přeci to nějak jít musí. V současnosti používám na webu kódování windows-1250. Vše funguje skvěle .. databáze, web, atd... jediný problém je v hromadném rozesílání novinek emailem, kdy samotný mail mám nastaven na charset=windows-1250 a tělo zprávy je v pořádku, ale pořád mě štve ten předmět .. neporadí prosím někdo ?? nebo to mám vzdát a prostě to budu muset dělat bez diakritiky.

PS: v předmětu se mi zobrazí ? místo š a ž
FantomX1
Profil
No ja neviem, podla mna by to ale malo ist, proste das ako treti parameter aj hlavicku Content-Type:text/plain; charset=windows-1250\r\n.
Samozrejme vsetky hlavicky spolu musia byt retazec a musia byt oddelene znakmi \r\n. A ak ti to nepojde ani tak, tak skus dat aj subject ako hlavicku v tretom parametri ako Subject: ale napis ho az po hlavicke Content-Type, cize asi nejak takto



$hlavicky="Content-Type: text/html; charset=windows-1250\r\n";
$hlavicky.="From: $od_koho\r\n";
$hlavicky.="Subject: $od_koho\r\n";

/*Hlavicku subject das len ak ti to nepojde ako druhy parameter. Nezabudaj ani na to ze hlavicku Content-Type vpis ako prvu.*/


mail($komu,$predmet,$sprava,$hlavicky);
pan.kolouch
Profil *
Dík, ale tohle taky nefunguje .. :-(
T3RMiX
Profil
No ja si s emailem taky uzil sve a nikdy jsem nedocil toho ze se me predmet poslal s cestinou bez problemu. Zkousel jsem mnoho kodovani i mnoho e-mail sluzeb a klientu a vzdy to v nejakem zlobilo, takze jsem se smiril s tim ze budu posilat predmet bez cestiny.
Leo
Profil
Ja pouzivam tohle (zdrojovy text je v kodovani win1250, ale email posilam v iso-8859-2), je to seskladany podle manualu php:

$predmet = "Růžovoučký žůžíčkařťž";
$predmet = iconv("CP1250","ISO-8859-2",$predmet);

$predmet = str_replace(" ", "_", trim($predmet)) ;
$predmet = str_replace("?", "=3F", str_replace("=\r\n", "", imap_8bit($predmet))) ;
$predmet = str_replace("\r\n", "?=\r\n =?ISO-8859-2?Q?", chunk_split($predmet, 55)) ;
$predmet = "=?ISO-8859-2?Q?" . substr($predmet, 0, strlen($predmet)-20) . "?=" ;

Leo
pan.kolouch
Profil *
Leo:

Díky moc .. tohle opravdu funguje .. dokonce v hlavičce používám s tímto kódem charset=windows-1250 a jede to bez problémů .. předmět má háčky a čárky, tělo zprávy také ...

jěště jednou díky :-)
Leo
Profil
Pro windows1250 by melo stacit vyhodit druhy radek (iconv) a pak vsude kde je

ISO-8859-2

napsat

windows-1250

Leo
eTomm
Profil *
Leo seš jednička! Fachá to!
Já to posílání mejlů mam ze stránky která je v UTF-8 a nic obdobnýho co sem našel jinde nefungovalo !
pojišťovák
Profil *
Funguje to super, ale nevíš proč se mi po téhle úpravě začalo do těla emailu přidávat tohle?:


=?windows-1250-2?Q?E9=9A=EC?=
From: ******************>
MIME-Version: 1.0
X-Mailer: muj Mailer
Content-Type: text/plain; charset="windows-1250"
Content-Transfer-Encoding: 7bit

díky
pojišťovák
Profil *
Vyřešeno..funguje to fak super..
Pilda
Profil
<citace>
$predmet = "Růžovoučký žůžíčkařťž";
$predmet = iconv("CP1250","ISO-8859-2",$predmet);

$predmet = str_replace(" ", "_", trim($predmet)) ;
$predmet = str_replace("?", "=3F", str_replace("= ", "", imap_8bit($predmet))) ;
$predmet = str_replace(" ", "?= =?ISO-8859-2?Q?", chunk_split($predmet, 55)) ;
$predmet = "=?ISO-8859-2?Q?" . substr($predmet, 0, strlen($predmet)-20) . "?=" ;
</citace>

Je pravda, že s timhle to funguje jak má, ale já ačkoliv ty funkce znám, vůbec nechápu, proč to všechno je nutné a co se v tom scriptu děje. Nemohl by mi to prosím někdo trošku popsat řádek po řádku, ať jsem trošku chytřejší?
jrm
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=13 349
Toto téma je uzamčeno. Odpověď nelze zaslat.