Ну, идея-то правильная.
Только не совсем понял что ты там делаешь с именем пользователя и паролем. И еще. Я бы выделил проверку ящика в отдельную процедуру с входными логином и паролем. И не понятно что за письмо ты ищешь - отправленное с определенного адреса, что-ли?
Я бы сделал как-то так:
Код:
type
TSelectMessage = procedure (Msg : TIdMessage) Of Object;
procedure CheckMailBox(AUser, APass : String; ASelMsg : TSelectMessage)ж
var
N, I : Integer;
POP3 : TIdPOP3;
Msg : TIdMessage;
begin
Msg := TIdMessage.Create(Nil);
POP3 := TIdPOP3.Create(Nil);
Try
POP3.User := AIser;
POP3.Password := APass;
POP3.Connect;
N := POP3.CheckMessages;
For I := 1 To N Do
Begin
POP3.Retrive(I,Msg);
ASelMsg(Msg)
End;
Finally
POP3.Free;
Msg.Free;
End;
end;
Ну и теперь эту процку можно вызывать для каждого ящика.
Входная процка ASelMsg - собственно обработчик сообщения, который и принимает решение - то это письмо или нет.