Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Kodowanie znaków w mailu txt
mariuszg
post 25.12.2009, 23:46:25
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 22.06.2006

Ostrzeżenie: (0%)
-----


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.  
Go to the top of the page
+Quote Post
lnn
post 26.12.2009, 00:00:17
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
cim
post 26.12.2009, 00:07:17
Post #3





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

Ostrzeżenie: (0%)
-----


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


--------------------
errare humanum est
Go to the top of the page
+Quote Post
darko
post 26.12.2009, 00:19:32
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Linia 7. $charset='utf-8';


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 09:01