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

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

Delphi и Indy [D6, Win2k]


Awod ©   (2004-03-18 21:20:00) 

Добрый вечер!
Помогите в написании почтового сервера с использованием TIdPOP3Server. Не получается у меня клиентам почтовым отправить ответ о количестве писем в ящике. Не подскажите как это можно сделать?


Rosik   (2004-03-21 21:41:00) [1]

ти че?
я же тебе говорю ты используй ручную обработку, сейчас сырцов нет  под рукой.
сам обробатывай все команды которые тебе шлет клиент, в компоненте IdPOP3Server есть поле его помоему в false и все команды переописываешь. Там чето с CommandHandler связано, посмотри, не сложно.


Awod   (2004-03-21 13:39:00) [2]

Но у TIdPOP3Server есть событие OnSTAT в котором по идее я должён как раз сообщить клиенту количество сообщений и их общий размер.
Я и делаю

procedure TfrmMain.IdPOP3Server1STAT(ASender: TIdCommand);
begin
   ASender.Reply.SetReply(0,'+OK 19 3634866');
end;

Но клиент после этого просто закрывает соединение.
Чего делать ?


Rosik   (2004-03-20 00:23:00) [3]

Так клиент схавает, но лучше Rfc почитай и по науке сделай.
Принцип такой:

//RETR
procedure TF_Form.IdPOP3Server1TIdCommandHandler3Command(
 ASender: TIdCommand);
begin
If TIdPOP3ServerThread(ASender.Thread).State=trans then
    begin
     ASender.Thread.Connection.WriteLn('+OK '+ inttostr(AllBytes) +' octets');
     ASender.Thread.Connection.WriteLn(CountMessages);
     ASender.Thread.Connection.WriteLn('.');
    end;
end;


Наверх

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