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

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

Indy


Shadow_exe ©   (2006-10-29 15:35:00) 

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

Заню, уже много писалось по этому поводу, но всеже у меня ничего не выходит(((

Вот мой код:


procedure TForm1.Button1Click(Sender: TObject);
var
 mc, i, s, j: integer;
 m: TIdMessage;
begin
 if not IdPOP31.Connected then
   ShowMessage('Неа)))')
 else
   begin
      mc:=Form1.idpop31.CheckMessages;
      m:=TIdMessage.Create(idpop31);
      for i := 1 to mc do
     begin
      idpop31.RetrieveHeader(i,m);
        for j:=0 to m.MessageParts.Count-1 do
 if M.MessageParts.Items[j] is TIdText then
   Memo1.Lines.AddStrings(TIdText(m.MessageParts.Items[j]).Body);
     end;
   end;

end;


Изложу проблему в двух словах:
Я могу все получить (заголовок, from, время), одним словом ВСЕ! Но не могу получить сам текст сообщения(

m.Body.Text

Он мне или ничего не возвращяет, или просто пустое место! (что почти одно и тоже)

Что делать?
Искал в поисковиках, так почти у всех одно и тоже написано, но подобной проблемы нет не у кого)))

m.Body.Text
TIdText(m.MessageParts.Items[j]).Body

Возвращяет одно и тоже... - ""


Shadow_exe   (2006-10-29 17:21:00) [1]

розабрался вроде...


Орион   (2006-10-29 17:04:00) [2]

http://unix.org.ua/rfc/rfc2045.html


Shadow_exe   (2006-10-29 16:59:00) [3]

Что это?


Орион   (2006-10-29 16:58:00) [4]

rfc 2045


Shadow_exe   (2006-10-29 16:41:00) [5]

 IdMessage1.CharSet := 'Windows-1251';
 IdMessage1.ContentType := 'text/html';
 IdMessage1.ContentTransferEncoding := 'noEncode';


А что с кодировкой делать то?
Пробую все что знаю, но ничего не выходит)))


Shadow_exe   (2006-10-29 16:32:00) [6]

Легко сказать)))


Орион   (2006-10-29 16:23:00) [7]

> [9] Shadow_exe   (29.10.06 16:21)

просто сам сортируй по папкам.


Shadow_exe   (2006-10-29 16:21:00) [8]


> т.е. в самом мейл-клиенте

Это так, но всеравно как-то оно же должно розбиваться)))

Ладно, что-то придумаю...


Орион   (2006-10-29 16:19:00) [9]

> [7] Shadow_exe   (29.10.06 16:09)

не знаю. Я с "высокоуровневыми" компонентами Indy не работал :)
Насколько я знаю "папки" организуются локально, т.е. в самом мейл-клиенте.


Shadow_exe   (2006-10-29 16:09:00) [10]

А тогда другой вопрос:
Как узнать в какой папке лежит сообщение и брать только из входящих, или к примеру только те, что еще не прочитаны?


Shadow_exe   (2006-10-29 16:08:00) [11]

Заработало)))


Shadow_exe   (2006-10-29 16:02:00) [12]

procedure TForm1.Button1Click(Sender: TObject);
var
mc, i, s, j: integer;
m: TIdMessage;
begin
if not IdPOP31.Connected then
  ShowMessage('Неа)))')
else
  begin
     mc:=Form1.idpop31.CheckMessages;
     m:=TIdMessage.Create(idpop31);
     for i := 1 to mc do
    begin
     idpop31.Retrieve(i,m);
       for j:=0 to m.MessageParts.Count-1 do
if M.MessageParts.Items[j] is TIdText then
  Memo1.Lines.AddStrings(TIdText(m.MessageParts.Items[j]).Body);
    end;
  end;

end;


Если ты имееш ввиду так, то оно теперь вообще не пашет(((


Shadow_exe   (2006-10-29 15:58:00) [13]

Спасибо попробую)


Орион   (2006-10-29 15:53:00) [14]

случайно отправить нажал.

Retrieves headers for a message.
function RetrieveHeader(const MsgNum: Integer; AMsg: TIdMessage): Boolean;

Parameters

const MsgNum: Integer
Message number to be retrieved.
AMsg: TIdMessage
Message instance where headers will be stored.

Return Value
Boolean - True on success.

Description
RetrieveHeader is a Boolean function that retrieves the headers of the messagenumber specified in MsgNum and stores the values in the AMsg instance.


Орион   (2006-10-29 15:52:00) [15]

PS: потому что получить заголовок и получить все сообщение - две разные разницы.
Перед тем как постить, можно было хотя бы справку прочитать:


Орион   (2006-10-29 15:49:00) [16]

> Но не могу получить сам текст сообщения(

Оно и понятно.

TIdPOP3.Retrieve(const MsgNum: Integer; AMsg: TIdMessage)


Наверх

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