«

»

Polskie znaki w temacie maila wysyłanego funkcją mail()

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 ="Content-type: text/html; charset=utf-8";

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.

Podziel się na:
  • Drukuj
  • Facebook
  • Wykop
  • Google Bookmarks
  • Blogger.com
  • Blip
  • Digg
  • Dodaj do ulubionych
  • Gadu-Gadu Live
  • Grono.net
  • LinkedIn
  • Live
  • MySpace
  • Mój biznes
  • PDF
  • Poleć
  • RSS
  • Twitter
  • Śledzik

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć tych znaczników i atrybutów HTMLa: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>