Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kodowanie znaków w mailu txt
Forum PHP.pl > Forum > Przedszkole
mariuszg
witam,

Poniżej mam funkcję która wysyła maila w formie html i prawidłowo koduje polskie znaki.

Ja chciałem aby wiadomość była wysyłana w txt ale aby polskie znaki były prawidłowo kodowane.


  1.  
  2. function mail_wyslij($email_do,$temat,$tresc,$email_odp,$od) {
  3.  
  4. define('SERWIS_NAME',$od);
  5. define('SERWIS_EMAIL_ADDRESS',$email_odp);
  6. define('SERWIS_EMAIL_ADDRESS_MAIL_HEADER_FROM','"'.SERWIS_NAME.'" <'.SERWIS_EMAIL_ADDRESS.'>');
  7. $charset='iso-8859-2';
  8.  
  9.  
  10. global $charset;
  11. $NL="\n";
  12.  
  13. $mime_boundary = '----=_'.uniqid('');
  14. $naglowki='From: '.SERWIS_EMAIL_ADDRESS_MAIL_HEADER_FROM.$NL.
  15. 'Reply-To: '.SERWIS_EMAIL_ADDRESS.$NL.
  16. 'MIME-Version: 1.0'.$NL.
  17. 'Content-Type: multipart/alternative; boundary="'.$mime_boundary.'"';
  18.  
  19. $skrot = '=?'.$charset.'?B?'.base64_encode($skrot).'?=';
  20. $plain=strip_tags(str_replace(array('<br>','&amp;','</p>','<p>'),array($NL,'&',$NL,''),$tresc));
  21.  
  22. $body='This is a multi-part message in MIME format.'.$NL.$NL.
  23. '--'.$mime_boundary.$NL.
  24. 'Content-Type: text/plain; charset="'.$charset.'"'.$NL.
  25. 'Content-Transfer-Encoding: 8bit'.$NL.$NL.
  26. $plain.$NL.$NL.
  27. '--'.$mime_boundary.$NL.
  28. 'Content-Type: text/html; charset="'.$charset.'"'.$NL.
  29. 'Content-Transfer-Encoding: 8bit'.$NL.$NL.
  30. '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  31. <HTML><HEAD>
  32. <META http-equiv="Content-Type content=text/html; charset='.$charset.'">
  33. <style>
  34. BODY {
  35. font-family: Verdana;
  36. font-size: 12px;
  37. }
  38. </style>
  39. </HEAD>
  40. <BODY>'.
  41. $tresc.
  42. '</BODY></HTML>'.$NL.$NL.
  43. '--'.$mime_boundary.'--';
  44.  
  45. if(@mail($email_do,$temat,$body,$naglowki)== false){
  46. return $wyslano = "nie";
  47. }
  48.  
  49. }
  50.  
  51. /*
  52. if(mail_wyslij("do kogo","temat", "treść", "od kogo email", "od kogo tekst")!= "nie"){
  53. echo"Wysłano wiadomość";
  54. }else{
  55. echo"Nie wysłano wiadomości";
  56. }
  57. */
  58.  
lnn
to moze sproboj wywalic te znaczniki <html> i formatowanie czcionki ktore powoduje ze wiadomosc ma taki a nie inny format?
tylko spekuluje ale spróbuj
cim
Witam,

otwierając podgląd nagłówków w zwykłym mailu widzę taką linijkę:
  1. Content-Type: TEXT/PLAIN; charset=ISO-8859-2;


Może spróbuj też coś takiego dodać do nagłówków, bo w tej chwili nic takiego tam nie widzę. Oczywiście zmień też samą treść na tekstową a nie HTML tak jak napisał mój poprzednik.

Pozdrawiam
darko
Linia 7. $charset='utf-8';
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.