Guten Morgen,
ich bin grad mit einem Prog beschäftigt, dass bei verschiedenen eMail-Accounts nach eMails schaut. Die Profildaten sind in einer Ini-Datei gespeichert. Code sieht aus wie folgt:
Delphi-Quellcode:
function GetMails(host,userid,passw: string): integer;
begin
with form1 do begin
pop.Host := host;
pop.UserId := userid;
pop.Password := passw;
mkstatus('Verbinde...');
pop.Connect;
try result := pop.CheckMessages except begin
result := -1;
pop.disconnect;
end;
end;
mkstatus('Trenne...');
pop.Disconnect;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var ini: TIniFile;
var i,x: integer;
var t1,t2: TTreeNode;
begin
TreeMake;
ini := TIniFile.create(extractfilepath(application.exename)+'settings.ini');
treeview1.Items.Clear;
t1 := treeview1.Items.AddChild(nil,'Konten');
for i := 0 to ini.ReadInteger('General','Profiles',0)-1 do begin
label2.caption := ini.readstring('Profil'+inttostr(i+1),'Name','');
application.processmessages;
x := GetMails(ini.readstring('Profil'+inttostr(i+1),'Host',''),
ini.readstring('Profil'+inttostr(i+1),'UserID',''),
ini.readstring('Profil'+inttostr(i+1),'Password',''));
t2 := treeview1.Items.AddChild(t1,ini.readstring('Profil'+inttostr(i+1),'Name','')+' ('+inttostr(x)+' eMails)');
end;
// ...
label2.caption := 'Fertig.';
label4.caption := 'Fertig.';
end;
Das funktioniert mit GMX- und "echten" (also kein Webmailer) eMail-Konten auch wunderbar. Bei freemail.web.de allerdings ist nur ein POP-Login pro 15 Min erlaubt. Frage ich mit meinem Prog jetzt mehr als einmal pro 15 Min ab, so verbindet er auch brav nur klebt mir dann die WEB.de Meldung von wegen 15 Min um die Ohren und beendet selbstständig die Verbindung. Folge: Der Rest des Codes wird nicht mehr abgearbeitet.
Und nun die Frage: wie kann man auf solche Situationen programmiertechnisch reagieren, da diese Meldung auch nicht über IDPOP3.onStatus abzufangen ist?
Mit bestem Dank im Voraus, fxbasic