![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;