Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TIdPOP3 просмотр содержимого в разных кодировках... [D7, WinXP]


brother ©   (2007-12-17 11:36:00) 

Подключаюсь к серверу pop3.mal.ru
получаю IdPOP31.RetrieveHeader(n, IdMessage1)
некоторые письма читабельны, но вот некоторые:
?koi8-r?Q?=E1=CE=CE=C1_=E9=D7=C1=CE=CF=D7=C1?=
?UTF-8?B?0JfQvdCw0LrQvtC80YHRgtCy0LAg0L3QsCBZb3VyTG92ZS5ydQ==?=
как я понимаю, Id компонент не может работать с этими кодировками? Что можно сделать? Неужели перекодировку в win1251 реализовывать вручную?


brother   (2007-12-17 12:04:00) [1]

привожу код:
var n:integer;
   max_msg:integer;
begin
 IdMessage1.CharSet:='windows-1251';
 IdMessage1.ContentDisposition:='creation-date';
 IdMessage1.ContentTransferEncoding:='Base64';
 IdMessage1.ContentType:='text/plain';
 IdMessage1.Encoding:=meMIME;
 IdPOP31.Host:='pop3.mail.ru';
 IdPOP31.Port:=110;
 IdPOP31.Username:='';
 IdPOP31.Password:='';
 try
   IdPOP31.Connect;
 except
   memo1.Lines.Add('Error connection!');
 end;

 if IdPOP31.Connected then
 begin
  max_msg:=IdPOP31.CheckMessages;
  memo1.Lines.Add('Всего сообщений: '+inttostr(max_msg));
  for n:=max_msg-2 to max_msg do
   if IdPOP31.Connected then
   begin
    IdMessage1.Clear;
    IdPOP31.RetrieveHeader(n, IdMessage1);
    memo1.Lines.Add('['+inttostr(n)+'] From: '+IdMessage1.From.Text);
    memo1.Lines.Add('Recipients: '+IdMessage1.Recipients.EmailAddresses);
    memo1.Lines.Add('CCList: '+IdMessage1.CCList.EMailAddresses);
    memo1.Lines.Add('Subject: '+IdMessage1.Subject);
    memo1.Lines.Add('Date: '+FormatDateTime('dd mmm yyyy hh:mm:ss', IdMessage1.Date));
    memo1.Lines.Add('ReceiptRecipient: '+IdMessage1.ReceiptRecipient.Text);
    memo1.Lines.Add('Organization: '+IdMessage1.Organization);
   end;

  IdPOP31.Disconnect;
 end;
Не ужели никто с этим не сталкивался??? Ну подскажите хоть куда копать! Только не ручную перекодировку)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо