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

 



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.09.2018, 20:04
Pcrepair Pcrepair вне форума
Прохожий
 
Регистрация: 20.01.2015
Сообщения: 44
Версия Delphi: Pascal
Репутация: 10
По умолчанию INDY, IMAP, вложения в письмо

Добрый день. Обычно у всех вопрос как получить вложения в письмо.
но мне нужно все наоборот - не загружать вложения. не нужны.
текущий код предусматривает загрузку всего письма с последующей передачей на обработку :

Код:
          IMAP.RetrieveAllHeaders(IMAP.MailBox.MessageList);
          aMsgCnt:=IMAP.MailBox.MessageList.Count;

          if (aMsgCnt > 0) then
          begin

            for I := aMsgCnt downto 1 do
            begin
              if aRetrMail then
              begin                                 (*retrieve letter*)
                Msg.Clear;
                fStream.Clear;
                IMAP.Retrieve(I,Msg);

                Msg.SaveToStream(fStream);
                fStream.Position:=0;
                Lst2.LoadFromStream(fStream);
                Lst1.Add('<rowmail>');         (*ROW mail text*)
                Lst1.Add(Lst2.Text);
                Lst1.Add('</rowmail>'+sLineBreak);
              end;
            end;

            aList.Assign(Lst1);
          end;

Вопрос : нет ли возмжно что то настроить в Msg(TIdMessage) что бы вложения не грузились с сервера
Ответить с цитированием
  #2  
Старый 12.09.2018, 03:19
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,176
Версия Delphi: 7, XE3, 10.2
Репутация: 49086
По умолчанию

IMAP не проверял, но для POP3 есть метод, который ограничивает загрузку некоторым кол-вом линий.
Ответить с цитированием
  #3  
Старый 12.09.2018, 18:08
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,026
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Pcrepair
...возмжно что то настроить в Msg(TIdMessage) что бы вложения не грузились с сервера
В самой библиотеке реализующей данный класс возможности нету, протокол IMAP не позволяет - текстом хранится на сервере и передаётся клиенту всё и вся, внутри вложения тоже буквами лежат, нету у сервера способа отличить файл от слова "файл", вдобавок структура письма может отличаться в зависимости от содержания - в хедере лишь прописывается что либо текст в письме голимый или мультипарт с "припёком". Можно только узнать сколько новых писем в ящике, их порядковые номера, адреса отправителей, заголовки, описание темы, и что может помочь, с помощью .body.top() можно получить кусок текста из первой секции письма, хотя, если контент содержит мультипарт, то и текста в ней не будет, лишь указка на такое безобразие. Файлы и текст лежат под тегами в перемешку секциями, поэтому чтоб весь текст выдрать нужно предварительно и всю эту "слойку" к себе на комп перетянуть и только затем сепарировать
Ответить с цитированием
Ответ



Delphi XE8

Embarcadero® Delphi XE8 — это самое быстрое решение для разработки программного обеспечения, ускоряющее проектирование, программирование и создание взаимодействующих приложений для Windows, Mac, iOS, Android и IoT. Создавайте готовые решения корпоративного класса, включая в него разные клиентские native-платформы, мобильные расширения, интеллектуальные устройства, облачные службы, корпоративные и встроенные базы данных.


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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2018

ВКонтакте   Facebook   Twitter