Autor Zpráva
Ousteen
Profil *
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
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 *
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?

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: