Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] wysyłanie maila - brak kodowania w temacie
-Gość-
post
Post #1





Goście







mam funkcje:
  1. <?php
  2. function mail($to, $subject, $message, $headers = '', $additional_parameters = '') {
  3.  
  4. $to = trim($to);
  5. $subject = trim($subject);
  6. $message = trim($message).$this->ustawienia['email']['podpis'];
  7. $headers = trim($headers);
  8.  
  9.  
  10. if (empty($to)) {
  11. return false;
  12. }
  13.  
  14. if (empty($subject)) {
  15. return false;
  16. }
  17. if (empty($message)) {
  18. return false;
  19. }
  20.  
  21. // wybierz typ
  22. Switch($this->ustawienia['email']['typ']) {
  23.  
  24. case 'smtp':
  25.  
  26. $recipients = explode(',', $to);
  27.  
  28. $socket = fsockopen($this->ustawienia['email']['host'], $this->ustawienia['email']['port'], $errno, $error, 25);
  29. socket_set_timeout($socket, 5, 0);
  30. if (!$socket) {
  31. return false;
  32. $this->log_dodaj('Nie można było nawiązać połączenia z serwerem poczty',__FILE__,__LINE__);
  33. }
  34.  
  35. if(!$this->server_response($socket, '220')){return false;}
  36.  
  37. fwrite($socket, "HELO " . $this->ustawienia['email']['host'] . "rn");
  38. if(!$this->server_response($socket, '250')){return false;}
  39.  
  40. /* Logujemy sie do serwera */
  41. fwrite($socket, "AUTH LOGINrn");
  42. if(!$this->server_response($socket, '334')){return false;}
  43. fwrite($socket, base64_encode($this->ustawienia['email']['login']) . "rn");
  44. if(!$this->server_response($socket, '334')){return false;}
  45. fwrite($socket, base64_encode($this->ustawienia['email']['haslo']) . "rn");
  46. if(!$this->server_response($socket, '235')){return false;}
  47.  
  48. /* Okreslamy nadawce listu */
  49. fwrite($socket, "MAIL FROM: <" . $this->ustawienia['email']['email'] . ">rn");
  50. if(!$this->server_response($socket, '250')){return false;}
  51.  
  52. /* Okreslamy odbiorcow */
  53. foreach($recipients as $send_to) {
  54. $send_to = trim($send_to);
  55. if (ereg('^.+@.+..+$', $send_to)) {
  56. fwrite($socket, 'RCPT TO: <' . $send_to . ">rn");
  57. $this->server_response($socket, '250');
  58. }
  59. }
  60.  
  61. fwrite($socket, "DATArn");
  62. if(!$this->server_response($socket, '354')){return false;}
  63.  
  64. /* Wysylamy dodatkowe naglowki */
  65. fwrite($socket, 'Subject: ' . $subject . "rn");
  66.  
  67. fwrite($socket, $headers . "rnrn");
  68.  
  69. /* Teraz wysylamy tresc listu */
  70. fwrite($socket, $message . "rn");
  71. fwrite($socket, ".rn");
  72. if(!$this->server_response($socket, '250')){return false;}
  73.  
  74.  
  75. /* Rozlaczamy sie */
  76. fwrite($socket, "QUITrn");
  77. fclose($socket);
  78. return true;
  79. break;
  80.  
  81. // zwykly mail
  82. default:
  83. return mail($to, $subject, $message, $headers,$additional_parameters);
  84. break;
  85. }
  86. }
  87.  
  88. function server_response($socket, $response) {
  89. do {
  90. if(!($server_response = fgets($socket, 256))) {
  91. $this->log_dodaj('Nie mozna pobrac odpowiedzi serwera poczty!',__FILE__,__LINE__);
  92. return false;
  93. }
  94. }
  95. while (substr($server_response, 3, 1) != ' ');
  96.  
  97. if(substr($server_response, 0, 3) != $response) {
  98. $this->log_dodaj('Błąd serwera poczty: '.$server_response,__FILE__,__LINE__);
  99. return false;
  100. }
  101.  
  102. return true;
  103. }
  104. ?>


wszystko jest ok.. oprócz tego, ze w temacie przy wysyłaniu nie ma kodowania znaków.. domyślnie wszystko idzie przez utf.. ale gdy w temacie da sie polskie czcionki to nie sa one pokazywane... gdzie lezy przyczyna tego bledu... w tresci wiadomosci wszystkie polskie znaki sa ok...
Go to the top of the page
+Quote Post

Posty w temacie
- Gość   [php] wysyłanie maila - brak kodowania w temacie   19.07.2006, 11:56:20
- - gladiror   Przekonwertuj caly plik na ISO, dodaj naglowki z m...   19.07.2006, 12:05:48
- - elnino.pl   Musisz zakodować temat: [PHP] pobierz, plaintext ...   19.07.2006, 12:25:25
- - Gość   elnino.pl, thx   19.07.2006, 13:18:40


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 Aktualny czas: 19.08.2025 - 23:22