Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Polskie znaki w temacie maila w PHP

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”).

r   e   k   l   a   m   a

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.

 

programowanie

Komentarze