Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2010, 18:09   #1
Gurt87
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию Почта www.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 ???
Gurt87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почта xakkkkker Работа с сетью в Delphi 1 20.11.2008 14:52
E-mail почта не работает несколько дней, а спам приходит Alar Свободное общение 3 29.01.2008 16:54
Почта dmitrymoskva Общие вопросы Delphi 8 05.12.2007 13:00
Почта не выходит наружу. sonechko Работа с сетью в Delphi 7 27.04.2007 12:12