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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 27.10.2014, 14:10
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Оказывается это сообщение состоит из нескольких частей. Если смотреть заголовки через почтовый клиент, то они будут такими:
Код:
Content-Type: multipart/mixed;
    boundary="----=_Part_2_161819575.1413783727126"

А то, что я писал выше, это выдавал мне делфи, функцией idMessage1.SaveToFile

Вот, нашел как прочитать сообщение в котором только одна часть.

Код:
Memo1.Lines:= (IdMessage1.MessageParts.Items[0] as TIdText).Body;

Подскажите как правильно написать условие для проверки Content-Type
У меня почему-то срабатывает и до else и после

Код:
begin
  if not idIMAP41.Connected then
  begin
    AddToLog(' Невозможно подключиться к почтовому серверу. Попытка подключения... Error ' + IntToStr(GetLastError));
    IdIMAP41.Host := IniConf.ReadString('mail','host','');
    IdIMAP41.Port := IniConf.ReadInteger('mail','port',993);
    IdIMAP41.Username := IniConf.ReadString('mail','username','');
    IdIMAP41.Password := IniConf.ReadString('mail','password','');
    IdIMAP41.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdIMAP41);
    IdIMAP41.UseTLS := utUseImplicitTLS;
    idIMAP41.Connect;
    if idIMAP41.Connected then
    AddToLog(' Содинение с почтовым сервером!');
  end;

    IdIMAP41.SelectMailBox('INBOX');
     for i := IdIMAP41.MailBox.TotalMsgs downto 1 do
    begin
    idIMAP41.Retrieve(i, idMessage1);
    begin
      begin
      if idMessage1.ContentType = 'multipart/mixed' then
      begin
       tstr := (IdMessage1.MessageParts.Items[0] as TIdText).Body;
       mailbody := tstr.Text;
      end
     else
       mailbody := idMessage1.Body.Text;  //получаем тело сообщения
     end;
      address := idMessage1.From.Address; //получаем адрес отправителя
      subj := idMessage1.Subject;
      rcpt := idMessage1.Recipients.EMailAddresses;
     ...

Последний раз редактировалось M.A.D.M.A.N., 27.10.2014 в 21:02.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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