Jestem nowy i dopiero zaczynam zabawę z PHP. I już na początku mam mały problem. Mianowicie wysyłanie wiadomości z formularza umieszczonego na stronie przebiega pomyślnie. Jednak w treści wiadomości brakuje polskich znaków. Próbowałem na różne sposoby określać kodowanie w sekcji $headers jednak bez większego skutku, a dodatkowo maile zaczęły schodzić do spamu, ale to raczej nie ma związku.
Dlatego mam prośbę jakby ktoś mógł zerknąć i powiedzieć gdzie tkwi problem.
<?php if($_POST) { $to_Email = "alka65@wp.pl"; //Podaj tu email docelowy $subject = 'Wiadomość ze strony Opiekun - Fryzjer. WAŻNE!'; //Tutaj temat wiadomości - możesz też wykorzystać pole formularza i pobrać tą wartość od klienta :) //Sprawdzamy czy jest to rządanie Ajax, jeśli nie.. if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { //Kończymy skrypt wysyłając dane JSON $output = json_encode( 'type'=>'error', 'text' => 'Rządanie musi przejść przez AJAX' )); } //Sprawdzamy czy wszystkie pola zostały wysłane. kończymy skrypt jeśli nie (tutaj dodawaj więcej pól, które są wymagane) { } //Pobieramy dane z formularza $user_Name = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); $user_Email = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); $user_Phone = filter_var($_POST["userPhone"], FILTER_SANITIZE_STRING); $user_Message = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); //Dodatkowa validacja PHP (tylko dla pól wymaganych) { } if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //sprawdzamy email { } { } { } //Nagłówki do Maila $headers = 'From: '.$user_Email.'' . "\r\n" . 'Reply-To: '.$user_Email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); $headers .= "Content-type: text/plain; charset=utf-8\r\n"; $sentMail = @mail($to_Email, $subject, 'Witaj Alu. Klient '.$user_Name .' wysłał/a Ci wiadomość o treści: '. "\r\n".$user_Message . "\r\n" . ' Jeśli chcesz odpisać to napisz na email - '.$user_Email .', lub zadzwoń pod numer -'.$user_Phone, $headers); if(!$sentMail) { $output = json_encode(array('type'=>'error', 'text' => 'Nie można wysłać wiadomości. Sprawdź konfigurację PHP Mail')); }else{ $output = json_encode(array('type'=>'message', 'text' => 'Witaj '.$user_Name .' Dziękuję za wiadomość!')); } } ?>
Dodam, że jest to formularz wysyłany bez przeładowywania, z pomocą AJAX'a.