Всем привет!
Есть такая программка, которая будет через imap4 обрабатывать входящие сообщения, и затем удалять.
Код:
var
i: integer;
begin
IdIMAP41.Host := 'host';
IdIMAP41.Port := 993;
IdIMAP41.Username := 'login';
IdIMAP41.Password := 'pass';
IdIMAP41.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdIMAP41);
IdIMAP41.UseTLS := utUseImplicitTLS;
IdIMAP41.Connect;
idIMAP41.SelectMailBox('INBOX');
for i := 1 to IdIMAP41.MailBox.TotalMsgs do
begin
idIMAP41.Retrieve(i, idMessage1);
Memo1.Text := Memo1.Text+'Тема: '+idMessage1.Subject+#13#10+'Отправитель: '+idMessage1.From.Text+#13#10+'Сообщение: '+idMessage1.Body.Text+#13#10+'---///---'+#13#10;
idIMAP41.DeleteMsgs(i);
idIMAP41.ExpungeMailBox;
end;
IdIMAP41.Disconnect;
IdIMAP41.IOHandler.Free;
end;
end.
Как правильно написать код, чтобы письма в ящике обрабатывались последовательно, сначала обработалось первое сообщение, удалилось, а потом переходило ко второму.
Сейчас работает так: обрабатываются первые несколько писем и удаляются, а остальные остаются.