Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wysylanie emaili w formacie HTML
Forum PHP.pl > Forum > PHP
piteerus
mam oto taki skrypt wlasnej roboty:
  1. <?php
  2. // utworzenie krotkich nazw
  3. $name = trim($_POST['name']);
  4. $tekst = trim($_POST['tekst']);
  5. $email = trim($_POST['email']);
  6. $telefon = trim($_POST['telefon']);
  7.  
  8. // adres wlasciciela strony
  9. $do = adres@serwer.pl';
  10.  
  11. // nagłówki
  12. $naglowki = 'Reply-to: moj@mail.pl <moj@mail.pl>'."rn";
  13. $naglowki .= 'From: moj@mail.pl <moj@mail.pl>'."rn";
  14. $naglowki .= 'MIME-Version: 1.0'."rn";
  15. $naglowki .= 'Content-type: text/html; charset=iso-8859-2'."rn";
  16.  
  17. // temat wiadomosci
  18. $temat = 'Wiadomość ze strony www';
  19.  
  20. // wiadomosc
  21. $wiadomosc = '
  22. <html>
  23. <head>
  24. </head>
  25. <body>
  26. <p><b>to jest wiadomosc html</b></p>
  27. </body>
  28. </html>
  29. ';
  30.  
  31. // wyslanie maila
  32. if(mail($do, $temat, $wiadomosc, $naglowki))
  33. {
  34.  echo 'Wiadomość została wysłana';
  35. }
  36. ?>


skrypt wysyla wiadomosci ale nie w formacje html. otoz wszystko co powyzej lini "$naglowki .= 'MIME-Version: 1.0'."\r\n";" zostaje zalczone bez problemu wraz z ta linia, ale to co znajduje sie pozniej to tego nie zalacza w wiadomosci. nie wiem czemu sie tak dzieje. bez okreslenia Content type wiadomosc wysylana jest jako zwykly tekst a mnie jest potzrebny html. czy ktos ma jakis pomysl jak to rozwiazac?
wipo
A użyj zamiast ' tego "
dziobak
a gdzie jest znacznik
z tego co mi wiadomo jest on chyba wymagany.... mozesz tez w head dodac <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> sprobuj dodac te dwie rzeczy
piteerus
obie propozycje nie dzialaja. jak zamieniam cudzyslowy z pojednyczych ' na podwojne " to w ogole nic nie dziala. jak dorzucam kodowanie do naglowka w liscie tez nie dziala. chyba nie pozostaje mi nic innego jak tyklo zwykly tekst.
siemakuba
Po ostatnim nagłówku powinny zdaje się być dwa znaki nowej linii. Lepiej też chyba zamiast pisać \r\n, co jest prawidłowe dla Windowsa, ale nie dla Unix czy Mac, użyć stałej PHP_EOL.

Sprawdź tak:

  1. <?php
  2. $naglowki = 'Reply-to: moj@mail.pl <moj@mail.pl>'.PHP_EOL;
  3. $naglowki .= 'From: moj@mail.pl <moj@mail.pl>'.PHP_EOL;
  4. $naglowki .= 'MIME-Version: 1.0'.PHP_EOL;
  5. $naglowki .= 'Content-type: text/html; charset=iso-8859-2'.PHP_EOL.PHP_EOL;
  6. ?>


BTW, czy nie lepiej skorzystać z gotowego i prostego w użyciu rozwiązania? PHPMailer
pozdr.
piteerus
W koncu dziala!! dzieki!
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.