![]() |
Problem mit Retrieveheader
Also, ich hab hier mal einen Code, der meine mails abholt und die anlagen mit ner id speichert, aber wenn mehr als eine mail auf dem konto ist bekomme ich eine "Zugriffs Verletzung" Meldung.
Delphi-Quellcode:
Schonmal Danke für die Hilfe!
procedure TForm1.Button1Click(Sender: TObject);
var PartIndex,i : Integer; id_buf : String; begin randomize; IdPop31.Host:='pop.onlinehome.de'; IdPop31.Username:='Username'; IdPop31.Password:='Passwort'; IdPop31.Connect(); for i:=1 to idpop31.CheckMessages do begin IdPop31.Retrieveheader(i,IdMessage1); for PartIndex:=0 to IDMessage1.MessageParts.Count-1 do begin if(IdMessage1.MessageParts.Items[Partindex] is TIdAttachment) then Begin id_buf:=((copy(TimeToStr(now),1,2)+copy(TimeToStr(now),4,2)+copy(TimeToStr(now),7,2))+IntToStr(random(10))+IntToStr(random(10))); if fileexists(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf') then deletefile(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf'); TIdAttachment(IdMessage1.MessageParts.Items[Partindex]).SaveToFile(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf'); end; end; idmessage1.Free; idpop31.Delete(i); end; IdPop31.Disconnect; showmessage('done'); end; mfg DerSkw |
Re: Problem mit Retrieveheader
Kann oder will mir hier keiner helfen?
:( |
Re: Problem mit Retrieveheader
Hi,
Ohne es auszutesten würde ich die Zugriffsverletzung mal der Zeile
Delphi-Quellcode:
in die Schuhe schieben. Ich weiss nicht wo du das idmessage1 erzeugst, aber aufgrund der Bezeichnung gehe ich mal davon aus, dass es eine Komponente ist. Außerdem übernimmt es RetreiveHeaders nicht als var.
idmessage1.Free;
Versuchs auf alle Fälle mal ohne das free. grüße, daniel |
Re: Problem mit Retrieveheader
OK ohne idmessage.free geht es, aber die anhänge werden nicht gespeichert!
|
Re: Problem mit Retrieveheader
Mir fällt gerade auf, dass das Prog die mails garnicht bearbeitet, sondern nur löscht, hier ist der neue code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin test_lab.Caption:='ready'; timer1.OnTimer(form1); timer1.Enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); var PartIndex,i : Integer; id_buf : String; begin randomize; IdPop31.Host:='pop.onlinehome.de'; IdPop31.Username:='user'; IdPop31.Password:='pass'; IdPop31.Connect(); test_lab.Caption:='ready'; for i:=1 to idpop31.CheckMessages do begin IdPop31.Retrieveheader(i,IdMessage1); for PartIndex:=0 to IDMessage1.MessageParts.Count-1 do begin if(IdMessage1.MessageParts.Items[Partindex] is TIdAttachment) then Begin id_buf:=((copy(TimeToStr(now),1,2)+copy(TimeToStr(now),4,2)+copy(TimeToStr(now),7,2))+IntToStr(random(10))+IntToStr(random(10))); if fileexists(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf') then deletefile(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf'); TIdAttachment(IdMessage1.MessageParts.Items[Partindex]).SaveToFile(Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf'); shellexecute(handle,'open',PChar(Extractfilepath(paramstr(0))+'\worker.exe '+Extractfilepath(paramstr(0))+'\'+id_buf+'.rwgf'),nil,nil,sw_show); end; end; idpop31.Delete(i); test_lab.Caption:=inttostr(i); end; IdPop31.Disconnect; idmessage1.Free; test_lab.Caption:='done'; end; procedure TForm1.Button2Click(Sender: TObject); begin timer1.Enabled:=false; end; |
Re: Problem mit Retrieveheader
kann es sein das nach deiner methode die heruntergeladendaten zwar auf dem server gelöscht werden aber kein inhalt lokal gespeichert wird?
|
Re: Problem mit Retrieveheader
Das Message-Objekt musst Du vorher auch erzeugen. Ausserdem solltest Dir das Ergebnis von Checkmessages in einer Variablen speichern - sonst hat der Schleifenindex jedesmal einen anderen Wert, da Du ja die Mails mit Delete löschst:
Delphi-Quellcode:
MessageCount := idpop31.CheckMessages;
for i := 1 to MessageCount do begin IdMessage1 := TIdMessage.Create(NIL); IdPop31.Retrieveheader(i,IdMessage1); ... idpop31.Delete(i); IdMessage1.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz