![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 18.09.2004 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem:
Napisałem już zaczątki klienta pocztowego w php. W założeniach ma być on prosty (na zaliczenie na studiach - potem będę go już sam rozbudowywał...), ale przede wszystkim musi odczytywać maile z polskimi krzaczkami. Tutaj pojawia się problem. Jako temat potrafi pojawić mi się coś takiego: =?iso-8859-2?Q?=B6=E6=B1ga?= Nagłówek tego maila to(kocówka): Kod MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="iso-8859-2" śćąę W zawartości są trzy znaczki: śćąę (zaraz po nagłówku widać) Treść maila mi się wcale nie wyświetla... Drugi mail to forward długiego tekstu (kilka maili) z gmaila Nagłówek: Kod MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_22559_5178235.1137717208644" References: <d51319490601121346g3ad0851bn@mail.gmail.com> <3069c60b0601140217j473fe9b2u@mail.gmail.com> <d51319490601140509r75e9cdc5h@mail.gmail.com> ------=_Part_22559_5178235.1137717208644 Content-Type: text/plain; charset=ISO-8859-13 Content-Transfer-Encoding: base64 Content-Disposition: inline Dalej oczywiście tekst zakodowany base64. W treści wyświetlanej zaś pojawia mi się coś takiego: Cytat No to nie wiem czy rozpoczŕă mejla od końca czy teý poczŕtku. Ludzie zazwyczaj zaczynajŕ od poczŕtku - ja wićc bćdć jak zwykle przekorny i rozpocznć od końca (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) . Moje pytania - jak przekonwertować temat i treśćtak, aby wyświetlane były poprawnie? Wcześniej walczyłem z kwestią załączników - w końcu metodą prób i błędów uporałem się z tym. Teraz sen z powiek spędza mi właśnie ta konwersja. Podejrzewam także, iż gdy tylko zacznę pisać moduł do wysyłania maili to pojawi się kwestia odwrotna... Dla zainteresowanych skrypt obejrzeć można tutaj http://www.tczewskie.pl/poczta (trzeba być zalogowanym - skrypt ma obsługiwać maile użytkowników serwera). Z góry dziękuję wszystkim za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dopisane po chwili: Dla testów wysłałem czystego maila z plskimi krzaczkami z gmaila. Nagłówek: Kod Subject: =?ISO-8859-2?Q?testowy_=B6ci=B1gacz_=3DP?= MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_23263_19163984.1137720585949" ------=_Part_23263_19163984.1137720585949 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: base64 Content-Disposition: inline Dla odmiany ten mail wyświetla się od razu prawidłowo (trzeba tylko temat odkodować)... Ten post edytował kamilus 20.01.2006, 02:32:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 18.09.2004 Skąd: Tczew Ostrzeżenie: (0%) ![]() ![]() |
Konwertować na UTF-8 to akurat potrafię.
Problem polega na tym jak sprawdzić jakie jest kodowanie w danym akurat momencie? W temacie maila bowiem obecnie pojawia się np. ISO-8859- - to jeszcze bym przetrawił wyrażeniami regularnymi (szczerze jest to moja pięta acillesowa - nie znoszę wyrażeń regularnych - zawsze się w nich gubię - a po dziś dzień nie znalazłem do nich dokumentacji przyswajalnej dla takiego młotka jak ja)... Jednak co jeśli ktoś wyśle maila w innym kodowaniu - np. CYR lub koreańskie krzaczki? Miałem nadzieję, iż istnieje coś gotowego do wykrywania "co to przyszło" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Usuwanie = i przeliczanie na dziesiętny - dzięki - przyda się ten sposób - szkoda tylko, że będę musiał eregi_replace stosować, które spowolni działanie skryptu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (naprawdę nie potrafię zrozumieć składni wyrażeń regularnych (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) )... Jak w prosty sposób wyciągnąć z wiadomości to w jakim systemie kodowania mail przyleciał? Rozbiłem tablicę i structure i headers i tam takowej informacji nie widzę. Zastanawiam się jak bezboleśnie wyciągnąć wartości content-type? Obiekt structure->content->type zwraca bowiem samo text/plain czy jakikolwiek inny - nie zwraca natomiast informacji o kodowaniu znaków (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Eh - zostawiłem sobie klient pocztowy na sam koniec (jutro mam zaliczenie) i mam teraz poważny problem... A myślałem, że to załączniki będą największym. Przeglądałem kod UebiMiau - ale on ma swoje własne mechanizmy, które zupełnie inaczej wyciągają nagłówki wiadomości niźli funkcje imap_ z php... Teraz zaś zajmuję się optymalizacją phpBB - droga przez mękę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 03:04 |