Как да получите набора от символи на съобщението (използвайки imap с php)

Как да получите набора от символи на съобщението (използвайки imap с php)


person faressoft    schedule 30.03.2011    source източник


Отговори (2)


Или проверете mime заглавките, или просто отидете надолу http://php.net/manual/en/function.imap-utf8.php маршрут. По този начин ще бъдете дяволски сигурни, че всичко, което получавате, е UTF-8

person Carlos Vergara    schedule 30.03.2011
comment
imap_utf8() декодира RFC2047-кодирани заглавки, но не помага с тялото на съобщението. - person dkarp; 31.03.2011
comment
Всъщност това не е вярно, тъй като декодира RFC2047-кодирани STRINGS, каквато и да е тяхната роля. Този човек: php.net/manual/en/function.imap -utf8.php#102081 сочи в правилната посока. Другата ви опция (и при това слаба) е да проверите дали вашият пощенски агент е разбрал правилно своите типове съдържание на MIME тела. Мините са склонни да казват неща като: Content-Type: text/html; charset=ISO-8859-1 - person Carlos Vergara; 05.04.2011
comment
Всички MIME тела, които съм извлякъл от злоупотреба с клас, който написах за предишен въпрос, носех някакъв вариант на това: =?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?= което RFC нарича кодирани думи. Разбирам, че не трябва да работят по този начин или каквото и да е, но все пак. Разбирам, че това е анекдотичен опит, но все пак е голям корпус от него. - person Carlos Vergara; 09.04.2011
comment
Като се замисля, бихте могли също така mb_detect_encoding($raw_mail, 'auto'); нали - person Carlos Vergara; 09.04.2011
comment
@Carlos: Вашият клас налага това кодиране върху съдържанието на частта от съобщението. Доверете ми се на това. Изкарвам прехраната си с писане на имейл сървъри. Или не ми вярвайте и прочетете RFC 2045. - person dkarp; 13.04.2011

Трябва да използвате функцията imap_headerinfo() и след това да потърсите "charset" или дори "Content-Type", като използвате просто търсене.

http://www.php.net/manual/en/function.imap-headerinfo.php

person Flipper    schedule 30.03.2011
comment
Документите, които сте свързали, не включват нито charset, нито Content-Type във върнатите стойности. - person dkarp; 31.03.2011