Autor | Zpráva | ||
---|---|---|---|
Ousteen Profil * |
#1 · Zasláno: 25. 9. 2009, 12:10:29
Zdravím,
narazil jsem na problém, se kterým si nevím rady :( PHP software. Veškerá čeština na webu je v pořádku. Ale pokud odešlu přes web nějaký email, nebo se odešle něco automaticky, tak je rozhozená čeština. Nezobrazují se české znaky. :/ Soubor, který slouží k odesílání je v UTF-8. Stejně tak soubor se samotným nachystaným e-mailem. Zde je hlavička e-mailu vytažená ze souboru: $boundary[1] = "b1_" . $uniq_id; $boundary[2] = "b2_" . $uniq_id; $header = "Date: ".$mail_date."\n". "Return-Path: " . $from_email . "\n". "From: " . $from_name . " <" . $from_email . ">\n". (($setts['enable_bcc']) ? "Bcc: " . $setts['admin_email'] . "\n" : ""). "Reply-to: " . $from_email . "\n". sprintf("Message-ID: <%s@%s>%s", $uniq_id, $_SERVER['SERVER_NAME'], "\n"). "X-Priority: 3\n". "X-Mailer: PHP Pro Bid/Sendmail [version " . $current_version . "]\n". "MIME-Version: 1.0\n". "Content-Transfer-Encoding: 7bit\n". sprintf("Content-Type: %s; charset=\"%s\"","text/html","iso-8859-1"). $params = sprintf("-oi -f %s", $from_email); if (strlen(ini_get('safe_mode'))<1) { $old_from = ini_get('sendmail_from'); ini_set("sendmail_from", $from_email); $result = @mail($to, $subject, $html_msg, $header, $params); } else { $result = @mail($to, $subject, $html_msg, $header); } V php jsem začátečník a tohle je nad moje síly. Prosím jestli někdo můžete, mrkněte se na ten kód hlavičky a nasměrujte mě kam to dosadit a hlavně jak. Tento kód je vytažený ze souboru, který zajišťuje odesílání samotného meilu. Ještě doplním, že se jedná o hotový naprogramovaný PHP software. Díky moc za případné rady. |
||
AM_ Profil |
#2 · Zasláno: 25. 9. 2009, 14:52:25 · Upravil/a: AM_
tak tohle je jednoduché až to bije do očí :)
„sprintf("Content-Type: %s; charset=\"%s\"","text/html","iso-8859-1").“ a říkáš, že soubory máš v UTF8. takže druhý parametr má být "utf-8"; mimochodem, já bych celou funkci sprintf nahradil prostě "content-type:text/html;charset=utf-8". A hlavně, za tenhle řádek patří středník místo tečky, jinak se ti bude k hlavičce nesmyslně připojovat i parametr $params. //edit: pro jednoznačnost uvedu opravený úryvek kódu: "Content-Transfer-Encoding: 7bit\n". "content-type:text/html;charset=utf-8\n" ; $params = sprintf("-oi -f %s", $from_email); |
||
Ousteen Profil * |
#3 · Zasláno: 26. 9. 2009, 06:57:33
AM_ : Perfekt. :) Díky. Nahradil jsem funcki sprintf jak jsi mi poradil a funguje tooo! :) Ale má to háček. Text e-mailů se teď sice zobrazí správně, ale předvyplněné údaje hlavičky jsou pořád rozhozené. Myslím teď např. předvyplněný předmět a jméno. Šlo by ještě něco udělat s tímto?
|
||
Časová prodleva: 15 let
|
0