Hallo
Ich hab ein kleines Problem mit meinem Delphi-Programm. Ich bin noch eher ein Anfänger, also bitte nicht meckern
Es geht um folgendes: Ich habe ein Programm, dass in regelmäßigen Abständen ein Mail-Konto abfragt und die Mails nach einem Suchwort durchsucht. Da ich leider nicht weiß wie ich nur die neuen Mails checken kann werden jedesmal alle Mails auf dem Server überprüft. Dabei tauchen zwei Probleme auf. Erstens dauert die ganze Aktion ziemlich lange (zwischen 30 secs und 1min 30sec), zweitens hängt mein Programm dabei komplett. Würde es helfen die Prozedur in einen extra-Thread zu packen?
Ich zeig euch mal den Quelltext (hab die uninteressanten sachen rausgenommen):
Code:
try
IdPOP31.Connect;
for x:=IDPOP31.CheckMessages downto 1 do begin
IdMessage1.Clear;
IdPOP31.RetrieveHeader(x, IdMessage1);
absender:=IdMessage1.From.Address;
if absender='bla@bla.com' then begin
IdPOP31.Retrieve(x, IdMessage1);
if (pos(suchwort, IDMessage1.Body.Text)>0) then inc(mails);
end;
end;
except
on EIdProtocolReplyError do showmessage('Verbindung fehlgeschlagen!');
end;
IdPop31.Disconnect;
Also nochmal, mir geht es darum dass die ganze Sache schneller abläuft und vor allem mein Programm dabei noch bedienbar bleibt. Ich hoffe ihr könnt mir da nen Tipp geben.