Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]mail i problem z kodowaniem:/
Forum PHP.pl > Forum > Przedszkole
robos85
wysyłam maile funkcją mail();
wysyłanie wygląda tak:
  1. <?php
  2. $to=$arr['email'];
  3.            $title="tytuł";
  4.            $head =  "MIME-Versio: 1.0\n";
  5.            $head .= "Content-typ: text/html; charset=utf-8\n";
  6.            $head .= "Fro: blabla.pl <jakiś mail>\n";
  7.            $content="treść maila.....";
  8. ?>

  1. <?php
  2. mail($to,$title,$content,$head);
  3. ?>

Strona jest w utf-8.
I problem polega na tym, że np na gmailu nie ma krzaczków, o2 również ładnie pokazuje. na WP mam krzaki ale tylko w tytule, a na mailu w home.pl są wszędzie krzaki.

Jak temu zaradzić?
JoShiMa
A nie powinno być:

  1. <?php
  2. $head .= 'Content-ty: text/html; charset="utf-8"\n';
  3. ?>
robos85
wzięcie tego w cudzysłowy nie pomaga:/
drPayton
Ja męczyłem się z tym bardzo długo (problem identyczny), testowałem różne rozwiązania podane to na forum i znalezione gdzieś indziej i nic. Problem rozwiązałem metodą na odwal: zacząłem stosować bibliotekę PHPMailer ;P

@nospor: Hmmm, dobrze wiedzieć. Ale na te najpopularniejsze (polskie portale + gmail jeśli chodzi o darmowe) dochodzi tak jak trzeba. Skoro działa po zmianie na iso, to jak na mój skromny gust, nie chyba a na pewno jest to wina serwera poczty winksmiley.jpg
Tak więc jeśli można używamy iso, a jak nie możemy (oj zdarza się niestety, że klient się uprze) - to mamy to gdzieś jego sprawa tongue.gif
nospor
@drPayton ja uzywam PHPMailer i niestety na niektore skrzynki utf8 tez dochodzi z krzakami. Dziala dopiero zmiana kodowania na iso.
Sam chetnie bym sie dowiedzial jak zrobic by dobrze bylo wszedzie w utf8. No chyba ze niektore konta pocztowe same w sobie są zwalone i nie przyjmują poprawnie utf8
robos85
yhm, to jak moje zmienne pozamieniać na iso wszystkie żeby ładnie było?
drPayton
Jeśli masz taką możliwość:
- zmień kodowanie plików (headery, meta)
- zmień kodowanie tekstu w plikach (np gżegżółką)

na iso-8859-2, a kodowanie w bazie na latin2 smile.gif
robos85
nie ma takiej możliwości:/
Pliki są na utf8.
a mogę tylko dane do maila zamieniać na iso?
np, treść wiadomości i tytuł - obie te zmienne mam statycznie wpisane w pliku, nie jest to wyciągane z bazy
nospor
@drPayton bez przesady. Wystarczy zmienic kodowanie tresci przy wysylania maila. Po co zaraz caly serwis winksmiley.jpg
Hpsi
a to fakt ;-) lepiej zminić same zmienne to jest prosta rzecz, niz cały serwis. Pamiętaj o tym też ze tytuł musi byc także w ISO
robos85
zmieniłem tak i chyba działa:)

  1. <?php
  2. $title2=iconv("UTF-8","ISO-8859-2",$title);
  3. $content2=iconv("UTF-8","ISO-8859-2",$content);
  4. ?>
drPayton
A bo ja porywczy jestem tongue.gif

A tak na poważnie, to ostatnio zdecydowanie zbyt często spotykam się z problemami związanymi z utf8 i mocny mnie to wkurza. Nie mając wpływu na dostawców hostingu, poczty etc jedynym rozsądnym rozwiązaniem wydaje się więc przejście na iso.
Gorzej, jeśli robimy serwis/aplikację multijęzykową :/
robos85
BTW: jaką przewagę nad zwykłym mail ma phpmailer, gdy wysyłam maile w taki prosty sposób? tytuł, treść, bez załączników?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.