Blog (16)
Komentarze (143)
Recenzje (0)
@slepciuPolskie znaki w temacie maila w PHP

Polskie znaki w temacie maila w PHP

16.03.2012 12:59, aktualizacja: 16.03.2012 14:01

Dzisiaj krótki wpis, ale mam nadzieję przydatny. Jeśli wysyłacie maile funkcją mail() w PHP być może natknęliście się na problem polskich znaków. W samej treści maila z problemem radzimy sobie dodając dodatkowy nagłówek – na co pozwala funkcja mail() np:

 $naglowek =....;
$naglowek .="Content-type: text/html; charset=utf-8";
mail('adres@mail.pl',$temat,$tresc,$naglowek)

Niestety dodanie nagłówka nie ma wpływu na kodowanie znaków w temacie maila. Aby poradzić sobie z tym problemem musimy zakodować base64 temat i dodać do tematu odpowiednie informacje o kodowaniu:

$temat= "=?UTF-8?B?".base64_encode("Temat z ogonkami ęóąśłżźćń")."?=";

Po pierwszym znaku zapytania dajemy informacje o kodowaniu znaków, po następnym o kodowaniu base64 (literka „B”).

Cytując manual PHP o base64:

Ten sposób kodowania został zaprojektowany, aby móc bezpiecznie przesyłać dane binarne, poprzez warstwy transportujące nie zaprojektowane do obsługi 8 bitowego przesyłania informacji, np. treść emaila.
Wybrane dla Ciebie
Komentarze (31)