Autor | Zpráva | ||
---|---|---|---|
igracek Profil * |
#1 · Zasláno: 29. 8. 2005, 23:42:24
zdravim! mam site v utf-8 a funkci mail() odesilam zcela standardnim zpusobem mail. Mam problem s tim, ze email se odesle v jakemsi kodovani, ktere neumi nektere mailove servery (centrum a seznam napriklad, zatimco gmail zobrazi mail spravne s diakritikou). vygoogloval jsem jen to, ze lze pouzit fci mb_send_mail() s nastavenim mb_language("uni"). tohle ovsem na mem hostingu PHP4.3.10 neumi. dik za radu
|
||
ronnie Profil |
#2 · Zasláno: 29. 8. 2005, 23:46:21
1. použít kódování v hlavičce nebo
2. použít funkcie icov |
||
Časová prodleva: 3 dny
|
|||
Broli Profil |
#3 · Zasláno: 1. 9. 2005, 11:55:01
chtelo by to priklad
|
||
Časová prodleva: 5 dní
|
|||
Kalda Profil * |
#4 · Zasláno: 6. 9. 2005, 13:48:01
Tady máš pro ukázku převod Win-1250 -> ISO-8859-2
1) proveď překódování textu do požadovaného kódování (lepší je použít iconv, tohle je i pro starší verze PHP) $_POST['text'] = StripSlashes(StrTr($_POST['text'], "\x8A\x8D\x8E\x9A\x9D\x9E","\xA9\xAB\xAE\xB9\xBB\xBE")); 2) pošli mail s MIME hlavičkou s potřebným kódováním mail('komu', 'predmet', $_POST['text'], "From: odkoho<odkoho@email.xx>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=\"iso-8859-2\""); |
||
Časová prodleva: 7 měsíců
|
|||
nostradam Profil |
#5 · Zasláno: 29. 3. 2006, 02:47:02
Stale jsem se nemohl vyporadat s tim proc se telo zpravy prichazelo kodovane spravne ale hodnoty reply-to: from: a to: mi chodily zakodovane us-ascii a to delalo silenou neplechu, trochu jsem hledal a nakonec na php.net to uz resil jeden japonec. Tento testovaci script, se kterym jsem experimentoval byl ulozeny jako text.php a byl ulozeny v kodovani UTF-8.
Takhle nejak to vypada: <pre> <? // test podle japanese $charset = "UTF-8"; // funguje i s ISO-88592-2 a windows-1250 $to = encode("ěščřžýáíé", $charset) . " <xxx@xxx.xx>"; $from = encode("ěščřžýáíé", $charset) . " <xxx@xxx.xx>"; $subject = encode("TESTIK ěščřžýáíé ĚŠČŘŽÝÁÍÉ", $charset); $message = "NENI NENI TREBA PREKODOVAVAT ěščřžýáíé ĚŠČŘŽÝÁÍÉ"; $email_header = "Reply-To: ". $from ."\n"; $email_header .= "From: ". $from ."\n"; $email_header .= "Content-transfer-encoding: 7bit\n"; $email_header .= "Content-type: text/plain; charset=\"UTF-8\"\n\n"; mail($to, $subject, $message, $email_header); function encode($in_str, $charset) { $out_str = $in_str; if ($out_str && $charset) { // define start delimimter, end delimiter and spacer $end = "==?="; $start = "=?" . $charset . "?B?"; $spacer = $end . "\r\n " . $start; // determine length of encoded text within chunks // and ensure length is even $length = 75 - strlen($start) - strlen($end); $length = floor($length/2) * 2; // encode the string and split it into chunks // with spacers after each chunk $out_str = base64_encode($out_str); $out_str = chunk_split($out_str, $length, $spacer); // remove trailing spacer and // add start and end delimiters $spacer = preg_quote($spacer); $out_str = preg_replace("/" . $spacer . "$/", "", $out_str); $out_str = $start . $out_str . $end; } return $out_str; } ?> </pre> |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0