Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.02.2009, 12:17
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию This is a multi-part message in MIME format

Здравствуйте

Скачал исходники с примера http://programmersclub.ru/alar-pochovik/
и подделал данные под себя (хост, имя пользователя и тд.). Письма на сервер отправляет нормально все ок. Но вот увы когда пытаешся получить письмо с сервера он пишет следующее:

This is a multi-part message in MIME format.

Что предполагаю переводится как:
Это составное сообщение в формате MIME.

В интернете есть инфа по самому MIME но нет информации по обработке MIME сообщений в Delphi. (Может плохо искал. не отрицаю.)

В связи с чем вопрос есть ли компоненты для декодирования MIME сообщений и как их можно привязать к вышеуказанному примеру?

Заранее спасибо
Ответить с цитированием
  #2  
Старый 16.02.2009, 15:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,018
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Это значит, что письмо разбито на части. Обычно это происходит тогда, когда в письмо вставлены разные файлы (аттачи и/или картинки). Умеет это дело обратно собирать TIdMessage, например.
Ответить с цитированием
  #3  
Старый 17.02.2009, 05:31
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Это значит, что письмо разбито на части. Обычно это происходит тогда, когда в письмо вставлены разные файлы (аттачи и/или картинки). Умеет это дело обратно собирать TIdMessage, например.

Буду очень благодарен если вы сможете поделится примером практического применения TIdMessage в данном случае.
Ответить с цитированием
  #4  
Старый 17.02.2009, 12:48
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию

Вот нашел более интересный пример http://codingrus.ru/infusions/pro_do...oad.php?did=62 там уже использован TIdDecoderMIME Только вот там увы не отображается тело письма при получении. Если у кого то есть соображения оч прошу поделится
Ответить с цитированием
  #5  
Старый 18.02.2009, 05:36
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию

Уря! Текст письма получить удалось. Было IdPOP31.RetrieveHeader(i,IdMessage1); добавил IdPOP31.Retrieve(i,IdMessage1); )Правда в старом добром виде This is a multi-part message in MIME format. Следовательно текст письма там никак не связан с TIdDecoderMIME. В общем вопрос по тому как сделать из This is a multi-part message in MIME format текст письма открыт
Ответить с цитированием
  #6  
Старый 18.02.2009, 06:58
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию

Есть прогресс! Хвала поисковикам Удалось получить текст письма с помощью следующей конструкции
Memo3.Lines:= (IdMessage.MessageParts.Items[1] as TIdText).Body;

текст письма был тест

пришел в следующем виде ФЕУФ.

Опытным путем удалось выяснить что был текст письма нужно перекодировать из CP1251 в KOI8-R. Если у кого то есть идеи с радостью выслушаю
Ответить с цитированием
  #7  
Старый 02.03.2009, 08:08
24rus 24rus вне форума
Прохожий
 
Регистрация: 16.02.2009
Сообщения: 9
Репутация: 10
По умолчанию Уррррряяяяяя!

Прожект завершен успешно. Кого интересует информация пишите на emelyanov8@gmail.com чем смогу помогу
Тема закрыта всем спасибо
Ответить с цитированием
  #8  
Старый 24.11.2009, 19:47
Otnow Otnow вне форума
Прохожий
 
Регистрация: 17.10.2009
Сообщения: 1
Репутация: 10
По умолчанию

Думаю наоборот надо из KOI8-R в CP1251, т.к. ФЕУФ - это в KOI8-R.

Код:
function Koi_WinConvert(const St: string): string;
type
  TConvertChars = array [#128..#255] of char;
const
Win_KoiChars: TConvertChars = (
  #128,#129,#130,#131,#132,#133,#134,#135,#136,#137,#060,#139,#140,#141,#142,#143,
  #144,#145,#146,#147,#148,#169,#150,#151,#152,#153,#154,#062,#176,#157,#183,#159,
  #160,#246,#247,#074,#164,#231,#166,#167,#179,#169,#180,#060,#172,#173,#174,#183,
  #156,#177,#073,#105,#199,#181,#182,#158,#163,#191,#164,#062,#106,#189,#190,#167,
  #225,#226,#247,#231,#228,#229,#246,#250,#233,#234,#235,#236,#237,#238,#239,#240,
  #242,#243,#244,#245,#230,#232,#227,#254,#251,#253,#154,#249,#248,#252,#224,#241,
  #193,#194,#215,#199,#196,#197,#214,#218,#201,#202,#203,#204,#205,#206,#207,#208,
  #210,#211,#212,#213,#198,#200,#195,#222,#219,#221,#223,#217,#216,#220,#192,#209);

var
  i: integer;
begin
  Result:=St;
  for i:=1 to Length(St) do
    if St[i]>#127 then
      Result[i]:=Win_KoiChars[St[i]];
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter