![]() |
mails abhohlen: größe und datum vorher checken
Delphi-Quellcode:
Mit diesem Code hohle ich eine mail ab. zu testzwecken bin ich sicher das es die einzige mail im postfach ist. Das mailfach dient als Ablage, mit dem sich Kunden auf knopfdruck eine Datei ziehen können. Folgendes will ich jetzt machen:
tPopMail.Connect(5000);
iMax := tPopMail.CheckMessages; for i := 1 to iMax do begin aMsg := tIdMessage.Create(NIL); aMsg.NoDecode := false; tPopMail.Retrieve(i, aMsg); aMsg.ProcessHeaders; for iMp := 0 to aMsg.MessageParts.Count-1 do begin if aMsg.MessageParts.Items[iMp] is tIdAttachment then begin s := (aMsg.MessageParts.Items[iMp] as tIdAttachment).Filename; (aMsg.MessageParts.Items[iMp] as tIdAttachment).savetofile('C:\'+s); end; end; aMsg.Free; - Es soll sichergestellt werden das bloß die mail mit dem neuesten Datum abgeholt wird. - Der anhang ist ~1 MB groß...und dieser Zeit muß man Kunden beschäftigen, sonst werden die nervös: ein fortschrittsbalken muß her. Wie bekomm ich die benötigten Daten? (also größe des anhangs und wieviel ich runtergeladen hab) wäre dankbar für paar denkanstöße.. |
Re: mails abhohlen: größe und datum vorher checken
Zum Fortschrittsbalken: Da kannst du mit den Ereignissen OnWork, OnWorkBegin und OnWorkEnd arbeiten.
|
Re: mails abhohlen: größe und datum vorher checken
Hmm, danke. So richtig komm ich bloß damit nich klar, die hilfe is auch nich sehr ergiebig.
Delphi-Quellcode:
wäre mein erster ansatz...bloß kann ja so nich gehen, denn wann wird aktualisiert? wenn ich jede sekunnde den wert AWorkCount irgendwo aktualisiert ausgeben könnte würde mir das schon reichen.
procedure TForm1.tPopMailWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer); begin Label1.Caption := IntToStr(AWorkCount); end; |
Re: mails abhohlen: größe und datum vorher checken
ok, es fehlte ein ProcessMessages. Also die Zahl der geladenen bytes hab ich...bloßwie komm ich an die gesammtgröße?
|
Re: mails abhohlen: größe und datum vorher checken
Zitat:
Zitat:
|
Re: mails abhohlen: größe und datum vorher checken
ja, schon klar...aber was nützt mir es wenn am ende des transfers ein ereignis ausgelößt wird :?: ich will ja möglichst zu beginn schon wissen was am ende rauskommt ;)
|
Re: mails abhohlen: größe und datum vorher checken
kann mir nochmal jemand elfen, wär echt nett...ich zähle zwar während des downloads die bytes mit..jedoch wüßt ich gern wiviels denn nun werden, um einen fortschrittsbalken machen zu können.
|
Re: mails abhohlen: größe und datum vorher checken
:roll: OnWorkBegin :roll:
|
Re: mails abhohlen: größe und datum vorher checken
Delphi-Quellcode:
procedure TForm1.IdPOP31WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer); begin if AWorkMode = wmRead then Label1.Caption:='downloading Data' else Label1.Caption:='uploading Data'; ProgressBar1.Max:=AWorkCountMax; end; procedure TForm1.IdPOP31Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin ProgressBar1.Position:=AWorkCount; end; procedure TForm1.IdPOP31WorkEnd(Sender: TObject; AWorkMode: TWorkMode); begin if AWorkMode = wmRead then Label1.Caption:='downloading complete' else Label1.Caption:='uploading complete'; end; |
Re: mails abhohlen: größe und datum vorher checken
leider negativ: AWorkCountMax ist 0 :( (das hochzählen mit AWorkCount funktioniert aber)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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