Einzelnen Beitrag anzeigen

prengel

Registriert seit: 3. Jun 2003
6 Beiträge
 
#1

Mail-Check friert mein Programm ein und dauert ewig.

  Alt 25. Jul 2003, 00:19
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.
  Mit Zitat antworten Zitat