Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PEAR Mail - Polskie znaki
mrSlowFlow
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.03.2009
Skąd: Warszawa

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


Korzystam z takiego kodu:

  1. <?php
  2. require_once "Mail.php";
  3.  
  4. $from = "biuro@podróże.com";
  5. $to = "adresat@mail.com";
  6. $subject = "Rezerwacja";
  7. $body = "Potwierdzenie rezerwacji";
  8.  
  9. $host = "mail.example.com";
  10. $username = "smtp_username";
  11. $password = "smtp_password";
  12.  
  13. $headers = array ('From' => $from,
  14.   'To' => $to,
  15.   'Subject' => $subject);
  16. $smtp = Mail::factory('smtp',
  17.   array ('host' => $host,
  18.     'auth' => true,
  19.     'username' => $username,
  20.     'password' => $password));
  21.  
  22. $mail = $smtp->send($to, $headers, $body);
  23.  
  24. if (PEAR::isError($mail)) {
  25.   echo("<p>" . $mail->getMessage() . "</p>");
  26.  } else {
  27.   echo("<p>Wysłano wiadomość!</p>");
  28.  }
  29. ?>



Działa bez problemu, ale adres email z którego chcę wysłać wiadomość zawiera polskie znaki. Spróbowałem takiego kodu:

  1. <?php
  2. $from = mb_encode_mimeheader($from, "UTF-8", "Q");
  3. ?>


Ale wyskakuje mi wtedy błąd:

Cytat
unable to add recipient [adresat@mail.com]: Invalid response code received from server


Bez tej dodatkowej linijki kodu wyskakuje taki błąd:

Cytat
No from address given


Jakieś pomysły jak rozwiązać ten problem? Domeny nie zmienie, bo taką sobie klient zażyczył.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A gdzie masz w nagłówkach ustawienie kodowania...?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mrSlowFlow
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.03.2009
Skąd: Warszawa

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


  1. <?php
  2. require_once "Mail.php";
  3.  
  4. $from = "biuro@podróże.com";
  5. $to = "adresat@mail.com";
  6. $subject = "Rezerwacja";
  7. $body = "Potwierdzenie rezerwacji";
  8. $content = "text/html; charset=utf-8";
  9. $transfer = "8bit";
  10.  
  11. $host = "mail.example.com";
  12. $username = "smtp_username";
  13. $password = "smtp_password";
  14.  
  15. $headers = array ('From' => $from,
  16.   'To' => $to,
  17.   'Subject' => $subject,
  18.   'Content-Type' => $content,
  19.   'Content-Transfer-Encodin' => $transfer);
  20.  
  21. $smtp = Mail::factory('smtp',
  22.   array ('host' => $host,
  23.     'auth' => true,
  24.     'username' => $username,
  25.     'password' => $password));
  26.  
  27. $mail = $smtp->send($to, $headers, $body);
  28.  
  29. if (PEAR::isError($mail)) {
  30.   echo("<p>" . $mail->getMessage() . "</p>");
  31.  } else {
  32.   echo("<p>Wysłano wiadomość!</p>");
  33.  }
  34. ?>
Wciąż to samo.



Użyłem takiego rozwiązania do prawidłowego wyświetlania polskich znaków w temacie wiadomości:
  1. <?php
  2. $encoded_subject = "=?utf-8?B?".base64_encode($subject)."?=";
  3. ?>

Działa to bardzo dobrze, jednak nie sprawdza się przy adresie e-mail.

Ma ktoś jakiś pomysł jak to rozwiązać?
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




podróże = xn--podre-3ta37g

Spróbuj więc dać:
  1. <?php
  2. $from = "biuro@xn--podre-3ta37g.com";
  3. ?>
Go to the top of the page
+Quote Post
mrSlowFlow
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.03.2009
Skąd: Warszawa

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


Niestety wciąż ten sam błąd.
Cytat
unable to add recipient [adresat@mail.com]: Invalid response code received from server
Go to the top of the page
+Quote Post
ernie242
post
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 3
Dołączył: 2.02.2009

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


Looknij na http://pear.php.net/manual/en/package.mail.mail.send.php, poniżej masz komentarz niejakiego "Note by: burak a.t toruko d.o.t com". Może Ci się przydać smile.gif

Albo może urlencode questionmark.gif?

Ten post edytował ernie242 18.06.2009, 18:46:27
Go to the top of the page
+Quote Post
mrSlowFlow
post
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.03.2009
Skąd: Warszawa

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


Tego też próbowałem i wciąż to samo. Chyba będe musiał przekonać klienta do założenia normalnej domeny...
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Hmm, a serwer nie ma sprawdzania pola from przy wysyłce? Tzn. ogranicza adresy do znajdujących się na koncie?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mrSlowFlow
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.03.2009
Skąd: Warszawa

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


Nie.
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 Aktualny czas: 20.08.2025 - 14:57