Indy IMAP4 неправильно отображает немецкие символы

Я использую компонент TIdIMAP4 для заполнения сетки строк сообщениями моего почтового ящика GMail.

var IMAPClient: TIdIMAP4;

В некоторых сообщениях есть немецкие умлауты. Когда я вызываю IMAPClient.RetrieveAllHeaders(MyMsgList), сетка строк заполняется, как и ожидалось (отображаются все умляуты), но, однако, нет UID (я думаю, что RetrieveAllHeaders просто не извлекает UID).

Когда я вызываю IMAPClient.UIDRetrieveAllEnvelopes(MyMsgList), все дополнительные атрибуты сообщений присутствуют, но заголовки отображаются в абракадабре (=?ISO-8859-1?Q?_Die_Br=FCcke_von_Arnheim?=) < em>// Будет "Die Brücke von Arnheim".

Я прочитал много поддерживающих сообщений, но не смог найти ответа, почему IndyIMAP4 неправильно обрабатывает немецкие символы. Любые идеи?


person Interface Unknown    schedule 13.09.2013    source источник
comment
Поможет ли нам узнать, какую версию Delphi вы используете?   -  person David Heffernan    schedule 13.09.2013
comment
Возможно, это поможет Кодирование исходящей электронной почты из Gmail   -  person moskito-x    schedule 13.09.2013
comment
@moskito-x: это не имеет ничего общего с этой проблемой.   -  person Remy Lebeau    schedule 13.09.2013


Ответы (1)


RetrieveAllHeaders() декодирует полученные необработанные данные. UIDRetrieveAllEnvelopes() извлекает только необработанные данные, не декодируя их. Вы можете декодировать необработанные заголовки вручную, вызвав функцию Indy DecodeHeader() в модуле IdCoderHeader.

person Remy Lebeau    schedule 13.09.2013