Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php mail - problem z kodowaniem
Forum PHP.pl > Forum > PHP
s4v4g3
Witam, albo coś jest nie tak z moim serwerem pocztowym, albo znowu coś namieszałem.
Proszę o sprawdzenie - brak polskich znaków ale tylko w mailu na serwerze hostingowym.
Jak zmienie na serwer pocztowy np. gmaila to polskie znaki są...
Proszę zerknijcie..

  1. <?PHP
  2.  
  3. if(isset($_POST['submit'])) {
  4.  
  5. $mailnadawcy = $_POST['mailnadawcy'];
  6. $mail = "moimail@poczta.com";
  7. $temat = "zapytanie....";
  8. $body = $_POST['body'];
  9.  
  10. $imie_nazwisko = $_POST['imie_nazwisko'];
  11. $gmail = $_POST['gmail'];
  12. $wiadomosc = $_POST['wiadomosc'];
  13.  
  14. $header = "Od: ". $mailnadawcy . "";
  15.  
  16. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  17.  
  18.  
  19. $body = "From: $mailnadawcy\n
  20. Imie, Nazwisko: $imie_nazwisko\n
  21. Adres e-mail: $gmail\n
  22. Tresc Wiadomosci: $wiadomosc\n
  23. ";
  24.  
  25. mail($mail, $temat, $body, $header);
  26.  
  27. $headers = 'MIME-Version: 1.0' . "\r\n";
  28. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  29. $headers .= 'From: '.$mailnadawcy.''."\r\n";
  30.  
  31. $tmp = mail($mailnadawcy,$temat,$wiadomosc,$headers);
  32. if($tmp) echo 'Wysłano!';
  33. else echo 'Wystąpił błąd';
  34.  
  35. echo "<script language=\"javascript\" type=\"text/javascript\">
  36. alert('Dziekuję za wysłanie maila, skontaktuję się z Państwem wkrótce...');
  37. window.location = \"http://$_SERVER[HTTP_HOST]\";
  38. </script>";
  39.  
  40. exit();
  41.  
  42. }}
  43. ?>
  44.  
Michael2318
Ale Ty maile wysyłasz dwa, w pierwszym w nagłówku dodajesz tylko to:

  1. $header = "Od: ". $mailnadawcy . "";


a w drugim:

  1. $headers = 'MIME-Version: 1.0' . "\r\n";
  2. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  3. $headers .= 'From: '.$mailnadawcy.''."\r\n";


Dodaj w pierwszym mailu takie same nagłówki jak w drugim.
s4v4g3
Chyba sam się już zamotałem..
Możesz podać cały kod jak powinien wyglądać...
Albo jest zapóźno już...smile.gif
Dzięki...
PawelC
Co Ci da gotowiec?smile.gif

Analiza kodu od 1 do 25 linijki:
  1. <?PHP
  2.  
  3. if(isset($_POST['submit'])) {
  4.  
  5. $mailnadawcy = $_POST['mailnadawcy'];
  6. $mail = "moimail@poczta.com";
  7. $temat = "zapytanie....";
  8. $body = $_POST['body'];
  9.  
  10. $imie_nazwisko = $_POST['imie_nazwisko'];
  11. $gmail = $_POST['gmail'];
  12. $wiadomosc = $_POST['wiadomosc'];
  13.  
  14. $header = "Od: ". $mailnadawcy . "";
  15.  
  16. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  17.  
  18.  
  19. $body = "From: $mailnadawcy\n
  20. Imie, Nazwisko: $imie_nazwisko\n
  21. Adres e-mail: $gmail\n
  22. Tresc Wiadomosci: $wiadomosc\n
  23. ";
  24.  
  25. mail($mail, $temat, $body, $header);

Gdzie tutaj w $header masz ustawione kodowanie? W nagłówku masz ustawione tylko Od, brak ustawionego kodowania. Natomiast w dalszej części kodu, czyli następny mailu masz już ustawione kodowanie:
  1. $headers = 'MIME-Version: 1.0' . "\r\n";
  2. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  3. $headers .= 'From: '.$mailnadawcy.''."\r\n";

Mam nadzieję, że teraz wiesz w czym tkwi błąd smile.gif Popraw to i daj znać...
Michael2318
Jakby na to nie patrzeć, podałem Ci gotowca... Masz znaleźć pierwszy fragment podany przeze mnie i zamienić go na ten drugi, który podałem, zamieniając jedynie nazwę zmiennej z $headers na $header.
s4v4g3
omg, za późno było jednak:)))
Dzięki smile.gif

  1. <?PHP
  2.  
  3. if(isset($_POST['submit'])) {
  4.  
  5. $mailnadawcy = $_POST['mailnadawcy'];
  6. $mail = "moimail@poczta.com";
  7. $temat = "zapytanie....";
  8. $body = $_POST['body'];
  9.  
  10. $imie_nazwisko = $_POST['imie_nazwisko'];
  11. $gmail = $_POST['gmail'];
  12. $wiadomosc = $_POST['wiadomosc'];
  13.  
  14. $headers = 'MIME-Version: 1.0' . "\r\n";
  15. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  16. $headers .= 'From: '.$mailnadawcy.''."\r\n";
  17.  
  18. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  19.  
  20. $body = "From: $mailnadawcy\n
  21. Imie, Nazwisko: $imie_nazwisko\n
  22. Adres e-mail: $gmail\n
  23. Tresc Wiadomosci: $wiadomosc\n";
  24.  
  25. mail($mail, $temat, $body, $headers);
  26.  
  27. $tmp = mail($mailnadawcy,$temat,$wiadomosc,$headers);
  28. if($tmp) echo 'Wysłano!';
  29. else echo 'Wystąpił błąd';
  30.  
  31. echo "<script language=\"javascript\" type=\"text/javascript\">
  32. alert('Dziekuję za wysłanie maila, skontaktuję się z Państwem wkrótce...');
  33. window.location = \"http://$_SERVER[HTTP_HOST]\";
  34. </script>";
  35.  
  36. exit();
  37.  
  38. }}
  39. ?>
Michael2318
Wkleiłeś gotowy kod, ale nie wiedzieć czy jeszcze czegoś oczekujesz, czy też może Ci to już działa...?
s4v4g3
Działa działa - to tylko potwierdzenie smile.gif
Krzaki nie przychodzą smile.gif
Są polskie znaki itd:)
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.