Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]IMAP i GMAIL - problem z polskimi znakami.
wuj_stach
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.09.2009

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


Witam,

Mam funkcję, która wyświetla listę wiadomoścci w skrzynce pocztowej, jest jednak mały problem pobiera wiadomości z Gmail ale niestety bez polskich znaków, podpowie mi ktoś jak przerobić tą funkcję żeby pobierała wiadomości z polskimi znakami. Pytałem w dziale "Przedszkole" ale niestety tam nikt nie jest w stanie mi pomóc. Może w tym dziale ktoś mi pomoże, Z góry wielkie dzięki.

To ta funkcja:

  1. function display_list($auth_user, $accountid)
  2. {
  3.  
  4. global $table_width;
  5.  
  6. if(!$accountid)
  7. {
  8. echo 'Nie Wybrano Żadnego Konta <br /><br /><br /><br /><br /><br />.';
  9. }
  10. else
  11. {
  12.  
  13. $imap = open_mailbox($auth_user, $accountid);
  14.  
  15. if($imap)
  16. {
  17. echo "<table width = $table_width cellspacing = 0
  18. cellpadding = 6 border = 0 align = center>";
  19.  
  20. $headers = imap_headers($imap);
  21.  
  22. $messages = sizeof($headers);
  23. for($i = 0; $i<$messages; $i++)
  24. {
  25. echo '<tr><td bgcolor = "';
  26. if($i%2)
  27. echo '#ffffff';
  28. else
  29. echo '#ffffcc';
  30. echo '"><a href ="index.php?action=view-message&messageid='.($i+1).'">';
  31. echo $headers[$i];
  32. echo "</a></td></tr>\n";
  33. }
  34. echo '</table>';
  35. }
  36. else
  37. {
  38. $account = get_account_settings($auth_user, $accountid);
  39. echo 'Otwarcie Skrzynki '.$account['Niemożliwe'].'.<br /><br /><br /><br />';
  40. }
  41. }
  42. }


A tak wyglądają wiadomości:

U 1)14-Nov-2009 =?ISO-8859-2?Q?Zesp= =?ISO-8859-2?Q?Dost=EAp_d (1808 chars)
U 2)14-Nov-2009 =?ISO-8859-2?Q?Zesp= =?ISO-8859-2?Q?Zaimportuj (2598 chars)
U 3)14-Nov-2009 =?ISO-8859-2?Q?Zesp= =?ISO-8859-2?Q?Dostosuj_G (2222 chars)


Z góry wielkie dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
akaz
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 4
Dołączył: 24.11.2009

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


A mam pytanie, z jakiej biblioteki do obsługi IMAP korzystasz?
Bo tak trochę na tą domyślną bibliotekę IMAP to trochę mi nie wygląda.

Przetestowałem imap_utf8 na tym kodzie:
  1. <?php
  2. /* connect to gmail */
  3. $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
  4. $username = 'user@gmail.com';
  5. $password = 'pass';
  6.  
  7. /* try to connect */
  8. $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
  9.  
  10. /* grab emails */
  11. $emails = imap_search($inbox,'ALL');
  12.  
  13. /* if emails are returned, cycle through each... */
  14. if($emails) {
  15.  
  16. /* begin output var */
  17. $output = '';
  18.  
  19. /* put the newest emails on top */
  20. rsort($emails);
  21.  
  22. /* for every email... */
  23. foreach($emails as $email_number) {
  24.  
  25. /* get information specific to this email */
  26. $overview = imap_fetch_overview($inbox,$email_number,0);
  27.  
  28.  
  29. /* output the email header information */
  30. $output.= "Toggler: ".($overview[0]->seen ? 'read' : 'unread')."\n";
  31. $output.= "Subject: ".imap_utf8($overview[0]->subject)."\n";
  32. $output.= "From:".$overview[0]->from."\n";
  33. $output.= "Date: ".$overview[0]->date."\n";
  34. $output.= "\n\n\n ";
  35. }
  36.  
  37. echo $output;
  38. }
  39.  
  40. /* close the connection */
  41. imap_close(nbox);
  42. ?>


Otrzymywałem ten sąm błąd, co Ty:
From:=?ISO-8859-2?Q?Zesp=F3=B3_Gmaila?= <mail-noreply@google.com>

Lecz po dodaniu funkcji imap_utf8 w tej linijce:
$output.= "From:".imap_utf8($overview[0]->from)."\n";
wynik wyglądał już poprawnie:
From:ZESPOŁ GMAILA <MAIL-NOREPLY@GOOGLE.COM>.

Więc jak narazie widzę dwa wyjścia:
* przesiąść się na domyślną bibliotekę imap,
* poszukać w dokumentacji Twojej biblioteki podobnej funkcji

Pozdrawiam!

Ten post edytował akaz 3.12.2009, 11:10:58
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 30.12.2025 - 02:04