@slepciuPolskie znaki w temacie maila w PHP
Polskie znaki w temacie maila w PHP
16.03.2012 | aktual.: 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.