Показать сообщение отдельно
  #1  
Старый 27.03.2010, 14:37
Gurt87 Gurt87 вне форума
Прохожий
 
Регистрация: 17.05.2009
Сообщения: 16
Репутация: 10
По умолчанию почтa с Mail.ru

Здравствуйте!
Есть ящик test_email_box@mail.ru
В нем 3 письма.
1-е пришло от Администрации при создании ящика
2-е отправил сам себе
3-е пришло с @gmail.com

Пытаюсь вытащить содержание этих писем с помощью TIdPOP3 и TidMessage (Indy)

Вот код:
Код:
Письмо от администрации
procedure TForm1.Button1Click(Sender: TObject);
begin
IdPOP31.Port:=110;
IdPOP31.Host:='pop3.mail.ru';
IdPOP31.Username:= 'test_email_box@mail.ru';
IdPOP31.Password:= 'qwerty';
IdPOP31.Connect;
IdMessage1.Clear;
IdPOP31.Retrieve(1,IdMessage1);
Memo1.Lines.Add(IdMessage1.CharSet);    //''
Memo1.Lines.Add(IdMessage1.From.Text);  // "áÄÍÉÎÉÓÔÒÁÃÉÑ Mail.Ru" <support@corp.mail.ru>
Memo1.Lines.Add(IdMessage1.Subject);    // 'äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ ÎÁ Mail.Ru!'
Memo1.Lines.Add(IdMessage1.Body.Text);  //  #$D#$A#$D#$A#$D#$A
IdPOP31.Disconnect;
end;

Письмо сам себе
procedure TForm1.Button2Click(Sender: TObject);
begin
IdPOP31.Port:=110;
IdPOP31.Host:='pop3.mail.ru';
IdPOP31.Username:= 'test_email_box@mail.ru';
IdPOP31.Password:= 'qwerty';
IdPOP31.Connect;
IdMessage1.Clear;
IdPOP31.Retrieve(2,IdMessage1);
Memo1.Lines.Add(IdMessage1.CharSet);     // 'KOI8-R'
Memo1.Lines.Add((IdMessage1.From.Text)); // 'Test Test <test_email_box@mail.ru>'
Memo1.Lines.Add(IdMessage1.Subject);     // '=?koi8-r?Q?=F4=C5=CD=C1_=D0=C9=D3=D8=CD=C1?='
Memo1.Lines.Add(IdMessage1.Body.Text);   //'ôÅËÓÔ ÐÉÓØÍÁ'#$D#$A#$D#$A#$D#$A
IdPOP31.Disconnect;
end;

Письмо с gmail
procedure TForm1.Button3Click(Sender: TObject);
begin
IdPOP31.Port:=110;
IdPOP31.Host:='pop3.mail.ru';
IdPOP31.Username:= 'test_email_box@mail.ru';
IdPOP31.Password:= 'qwerty';
IdPOP31.Connect;
IdMessage1.Clear;
IdPOP31.Retrieve(3,IdMessage1);
Memo1.Lines.Add(IdMessage1.CharSet);    //''
Memo1.Lines.Add(IdMessage1.From.Text);  //'=?KOI8-R?B?5dfHxc7JyiDn1dLUz9fPyg==?= <egoist.gt@gmail.com>'
Memo1.Lines.Add(IdMessage1.Subject);     //'=?KOI8-R?B?9MXNwSDQydPYzcE=?='
Memo1.Lines.Add(IdMessage1.Body.Text);  // #$D#$A
IdPOP31.Disconnect;
end;

Кодировки - другой разговор. Вопрос в другом.

Получается что самое "удачное" письмо - 2-е, потому что IdMessage1 получил все потребные свойства (CharSet,From,Subject,Body)

Почему же в 1-м и 3-м письме отсутствуют CharSet и Body,????
Как тогда их вытаскивать с IdMessage1? Может какоето другое свойство (IdMessage1.*****)?
Или это просто глюк IdMessage1 ???
Ответить с цитированием