Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi mails abhohlen: größe und datum vorher checken (https://www.delphipraxis.net/28332-mails-abhohlen-groesse-und-datum-vorher-checken.html)

Nightfly 23. Aug 2004 11:32


mails abhohlen: größe und datum vorher checken
 
Delphi-Quellcode:
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;
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:
- 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..

scp 23. Aug 2004 11:43

Re: mails abhohlen: größe und datum vorher checken
 
Zum Fortschrittsbalken: Da kannst du mit den Ereignissen OnWork, OnWorkBegin und OnWorkEnd arbeiten.

Nightfly 23. Aug 2004 12:03

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:
procedure TForm1.tPopMailWork(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
Label1.Caption := IntToStr(AWorkCount);
end;
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.

Nightfly 23. Aug 2004 12:33

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?

Luckie 23. Aug 2004 12:37

Re: mails abhohlen: größe und datum vorher checken
 
Zitat:

ok, es fehlte ein ProcessMessages
Nein, ein einfaches Label1.Refresh hätte es auch getan - denke ich.

Zitat:

Zitat von Nightfly
bloßwie komm ich an die gesammtgröße?

Es gibt noch ein anderes Work-Ereignis. ;) Genau genommen gibt es sogar insgesamt drei davon.

Nightfly 23. Aug 2004 12:56

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 ;)

Nightfly 27. Aug 2004 14:51

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.

SleepyMaster 27. Aug 2004 17:43

Re: mails abhohlen: größe und datum vorher checken
 
:roll: OnWorkBegin :roll:

SleepyMaster 27. Aug 2004 17:46

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;

Nightfly 30. Aug 2004 14:26

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.
Seite 1 von 2  1 2      

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