Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

E-mail z formularza na stronie nie dociera w formie HTML

Chcesz nauczyć się projektowania funkcjonalnych i dostępnych dla wszystkich serwisów, poznać standardy tworzenia stron WWW? A może masz w tej dziedzinie spore doświadczenie, ktorym chcesz się podzielić z innymi?

E-mail z formularza na stronie nie dociera w formie HTML

Post 04.05.2018, 18:20:42

Mam na stronie formularz kontaktowy i plik form.php który go obsługuje. Jednak gdy mail zostaje wysłany to w programie pocztowym zamiast ładnego e-maila widzę cały kod HTML i trudno w tym wszystkim doczytać się treści wiadomości.

Tak wygląda plik form.php:

Kod: Zaznacz cały
<?php
$to = 'xxx@xxx.pl';
$subject = 'XXX - formularz kontaktowy';
$headers = 'Formularz ze strony XXX';
$message = '
<html>
   <head>
      <title>Formularz ze strony XXX</title>
   </head>
   <body>
      <h3>Imię: <span style="font-weight: normal;">' . $_POST['name'] . '</span></h3>
      <h3>E-mail: <span style="font-weight: normal;">' . $_POST['email'] . '</span></h3>
      <h3>Telefon: <span style="font-weight: normal;">' . $_POST['phone'] . '</span></h3>
      <div>
         <h3 style="margin-bottom: 5px;">Wiadomość:</h3>
         <div>' . $_POST['comment'] . '</div>
      </div>
   </body>
</html>';

if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['comment'])) {
   if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
       mail($to, $subject, $message, $headers) or die('<span style="color: red;">Błąd wysyłania wiadomości</span>');
       echo '<span class="send-true" style="color: #00dd63;">Wiadomość została wysłana!</span>';
   }
} else {
   echo '<span style="color: red;">Wszystkie pola wymagane muszą być wypełnione!</span>';
}
?>


Gdzie może być błąd?
Włochy - tu powstaje pierwszy kompleksowy portal o Włoszech
opakowania tekturowe | opakowania foliowe
Avatar użytkownikainny.obserwator
Posty: 174
Dołączył(a): 20.09.2003

Re: E-mail z formularza na stronie nie dociera w formie HTML

Post 04.05.2018, 20:53:09

W zmiennej $headers są oczekiwane nagłówki informujące klienta poczty, że ma do czynienia z wiadomością HTML. Ty wysyłasz w nagłówkach "Formularz ze strony XXX". Zdefiniuj tą zmienną w ten sposób

Kod: Zaznacz cały
$headers = 'Content-type: text/html; charset=UTF-8';
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19762
Dołączył(a): 14.04.2002

Re: E-mail z formularza na stronie nie dociera w formie HTML

Post 07.05.2018, 09:32:31

Dziękuję, zmieniłem i wszystko działa już dobrze! :)
Włochy - tu powstaje pierwszy kompleksowy portal o Włoszech
opakowania tekturowe | opakowania foliowe
Avatar użytkownikainny.obserwator
Posty: 174
Dołączył(a): 20.09.2003


Powrót do Standardy sieciowe


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

Hosting, Domeny, SSL

Subskrypcja

Mamy 51433 zarejestrowanych użytkowników.
Najnowszy użytkownik: Prioleau


Nasi użytkownicy napisali:

  • 937602 wiadomości
  • w 247374 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)