Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SMTP сессия 
V
    Опции темы
Christoph
Дата 16.4.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Надо вывести в мемо SMTP сессию, например что посылает клиент, что ответил клиент, как это реализовать не знаю, подскажите в каком направлении копать?
например что то такого 

C: HELLO 195.161.101.33
S: 250 smtp.mail.ru is ready 
S: 250 OK 
C: From: Drozd <[email protected]
C: To: Drol <[email protected]>
C: Subject: Hello 


--------------------
user posted image
PM MAIL ICQ   Вверх
Matematik
Дата 16.4.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Цитата(Christoph @  16.4.2009,  16:17 Найти цитируемый пост)
как это реализовать

Memo.Lines.Add()
шутка.

В чем  именно проблема?
Всё что поcылается\принимается из сокета выводишь в мемо.
В Indy, например, за это отвечают компоненты IdLog...
Если что-то сомописное, можно добавить механизм событий, так же как в VCL.
PM MAIL WWW ICQ   Вверх
Christoph
Дата 16.4.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



IdLogDebug    
IdLogStream    
IdLogEvent    
IdLogFile    
Какой из них?
Там есть метод Recieve это?


--------------------
user posted image
PM MAIL ICQ   Вверх
Matematik
Дата 17.4.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Скорее всего нужен LogEvent, события OnReceived и OnSent

Код

procedure TForm1.IdLogEvent1Received(ASender: TComponent; const AText,
  AData: string);
begin
  memo1.Lines.Add('S: '+ADAta);
end;

procedure TForm1.IdLogEvent1Sent(ASender: TComponent; const AText,
  AData: string);
begin
  memo1.Lines.Add('C: '+ADAta);

end;


Пулучится воттак
Код

S: 220 mail.ru ESMTP Fri, 17 Apr 2009 12:31:46 +0400

C: EHLO acer

S: 250-mx2.mail.ru Hello acer [xxx]
250-SIZE 31457280
250-8BITMIME
250-AUTH PLAIN LOGIN
250 PIPELINING



Это сообщение отредактировал(а) Matematik - 17.4.2009, 11:41
PM MAIL WWW ICQ   Вверх
Christoph
Дата 17.4.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



У меня вывело только это и все


OK id=1Luoxp-000PdR-00


--------------------
user posted image
PM MAIL ICQ   Вверх
Christoph
Дата 18.4.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Ничего не получется ничего не выводит вот полный код 

Код

begin
 idSMTP1.Host:='smtp.mail.ru'; 
 idSMTP1.Port:=25; 
 idSMTP1.Username:='6'; 
 idSMTP1.Password:='6'; 
 idSMTP1.AuthenticationType:=atLogin; 
   with IdMessage1 do
      begin
        Body.Assign(Memo1.Lines); 
        From.Text := LabeledEdit2.Text;
        Recipients.EMailAddresses := LabeledEdit1.Text; 
        Subject := LabeledEdit3.Text; 

      idSMTP1.Connect; 
         try
           idSMTP1.Send(IdMessage1); 
         finally
            idSMTP1.Disconnect; 
         end;
end;

procedure TForm1.IdLogEvent1Sent(ASender: TComponent; const AText,
  AData: String);
begin
 memo2.Lines.Add('C: '+AData);
end;

procedure TForm1.IdLogEvent1Received(ASender: TComponent; const AText,
  AData: String);
begin
 memo2.Lines.Add('S: '+AData);
end;



--------------------
user posted image
PM MAIL ICQ   Вверх
Matematik
Дата 19.4.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Сам компонент включил?
Код

IdSMTP1.Intercept := IdLogEvent1;
IdLogEvent1.LogTime := False;
IdLogEvent1.ReplaceCRLF := False;
IdLogEvent1.Active := True;

PM MAIL WWW ICQ   Вверх
Christoph
Дата 20.4.2009, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Matematik, спасибо,+


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.