I m używając raczej określonego zestawu znaków (ISO-8859-2), ponieważ nie każdy system pocztowy (na przykład: http://10minutemail.com) może odczytywać wiadomości UTF-8. Jeśli potrzebujesz tego:
function utf8_to_latin2($str)
{
return iconv ('utf-8', 'ISO-8859-2' , $str);
}
function my_mail($to,$s,$text,$form, $reply)
{
mail($to,utf8_to_latin2($s),utf8_to_latin2($text),
"From: $form\r\n".
"Reply-To: $reply\r\n".
"X-Mailer: PHP/" . phpversion());
}
Zrobiłem inną funkcję mailera, ponieważ urządzenie Apple nie mogło odczytać poprzedniej wersji.
function utf8mail($to,$s,$body,$from_name="x",$from_a = "[email protected]", $reply="[email protected]")
{
$s= "=?utf-8?b?".base64_encode($s)."?=";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "From: =?utf-8?b?".base64_encode($from_name)."?= <".$from_a.">\r\n";
$headers.= "Content-Type: text/plain;charset=utf-8\r\n";
$headers.= "Reply-To: $reply\r\n";
$headers.= "X-Mailer: PHP/" . phpversion();
mail($to, $s, $body, $headers);
}
Czego używasz? natywne 'mail()' lub 'Zend_Mail' lub' PHPMailer'? Potrzebujesz kodu metody Factory! –
Musisz dodatkowo zadbać o docelowych klientów poczty e-mail. Nawet jeśli sprawisz, że poprawnie wyświetlisz wiadomość e-mail w kliencie poczty e-mail, nie oznacza to, że klient będzie widział poprawną pocztę. Na koniec zawsze buduję html-e-maile z nagłówkiem zestawu znaków UTF-8. W ten sposób większość klientów poczty e-mail wyświetla treść poprawnie. – Marco
@FlyBy: tak, dokładnie to, co chcę zrobić, wyświetl zawartość z zestawem znaków UTF-8, ale nadal nie widzę poprawnie wiadomości e-mail. – deepWebMie