Autor Beitrag
areuter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 18.06.05 09:25 
guten morgen!
ich bitte um hilfe.
habe folgenden code. ich würde gerne emails empfangen und die anhänge lokal speichern. was mache ich hier falsch? was passiert, wenn mit einer email z.b.2 dateien geschickt werden.
vielen lieben dank im voraus.
arne
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.Button1Click(Sender: TObject);
var mailcount: integer;
var j: integer;
begin
 progressbar1.position:=0;
 idpop31.Host:='pop.mail.de';
 idpop31.Username:='mustermann@provider.de';
 idpop31.Password:='xyzpasswort';
 idpop31.Connect();
 mailcount:=idpop31.CheckMessages;
  for j:=0 to mailcount do
  begin
  IdPop31.Retrieve(mailcount,IdMessage1);
  label9.Caption:=inttostr(j)+' Emails von '+inttostr(mailcount)+' empfangen';
  progressbar1.Max:=mailcount;
  progressbar1.position:=j;

   if(IdMessage1.MessageParts.Items[mailcount] is TIdAttachment) then
   Begin
   TIdAttachment(IdMessage1.MessageParts.Items[mailcount]).SaveToFile('c:\')
   end;

  if checkbox2.Checked=true then idpop31.Delete(mailcount);
  end;
 idpop31.Disconnect;
 label9.Caption:=inttostr(mailcount)+' Emails empfangen';
end;


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
Codewalker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46



BeitragVerfasst: Sa 18.06.05 10:25 
Ich mag mich irren, aber auf den ersten Blick hast Du hier was vergessen:

ausblenden Delphi-Quelltext
1:
 TIdAttachment(IdMessage1.MessageParts.Items[mailcount]).SaveToFile('c:\')					


Muss Du bei SaveToFile nicht den Dateinamen mitangeben, wie das in Delphi immer ist? Ich hab Indy jetzt nicht installiert, aber ich denke das TidAttachment eine Eigenschaft hat, über die man den Dateinamen der Ursprungsdatei auslesen kann. Dann müsste es so funktionieren, egal wie viele Attachments:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
 
var AlterDateiname: String;
begin
{ ... }
AlterDateiName:=IdMessage1.MessageParts.Items[mailcount]).Name; // Oder die jeweils passende Eigenschaft

TIdAttachment(IdMessage1.MessageParts.Items[mailcount]).SaveToFile('c:\'+AlterDateiname)
{ ... }
areuter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 18.06.05 10:46 
hallo codewalker,
danke für die antwort.
das sieht wirklich besser aus. aber korrigiere mich bitte, falls ich jetzt falsch liege: tidattachment ist doch keine komponente oder?
nur mit
ausblenden Delphi-Quelltext
1:
AlterDateiName:=IdMessage1.MessageParts.Items[mailcount]).Name; // Oder die jeweils passende Eigenschaft					

komme ich nicht klar .Name was meinst du hiermit?
danke
arne

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.