Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi nur bestimmte mails abhohlen (https://www.delphipraxis.net/29072-nur-bestimmte-mails-abhohlen.html)

Nightfly 3. Sep 2004 14:47


nur bestimmte mails abhohlen
 
Delphi-Quellcode:
      for i := 1 to iMax do begin
        aMsg := tIdMessage.Create(NIL);
        // Zur Analyse der einzelnen Bestandteile
        aMsg.NoDecode := false;
        tPopMail.Retrieve(i, aMsg);
        aMsg.ProcessHeaders;
           // eMail analysieren
           for iMp := 0 to aMsg.MessageParts.Count-1 do begin
              if aMsg.MessageParts.Items[iMp] is tIdAttachment then begin
                 // Dateinamen holen
                 s := (aMsg.MessageParts.Items[iMp] as tIdAttachment).Filename;

                  if s = ('Zwvsmall.dat') then
                   begin// Datei speichern wenn Zwvsmall.dat
                     if FileExists('C:\'+s) then DeleteFile('C:\'+s);
                     (aMsg.MessageParts.Items[iMp] as tIdAttachment).savetofile('C:\'+s);
                   end;

             end;



         end;
        // Message-Objekt löschen
        aMsg.Free;




      end;
mit diesem code hohle ich meine mails ab...es wird kein mailprogramm, sondern soll bloß eine einzige art von mail abhohlen. egal wieviele und wie auch immer geartete mails im postfach liegen, geholt werden soll bloß EINE, und zwar die mit dem Betreff 'XXX'...sind mehrere mit diesem betreff im, postfach, so soll die neueste geholt werden.
Bekomme ich diese Daten, ohne alle mails vorher holen zu müssen? Alle zu holen und dann bloß die gesuchte zu behalten ist nicht der weg, weil in dem postfach schonmal 10mb und mehr sein können..

Dax 3. Sep 2004 14:51

Re: nur bestimmte mails abhohlen
 
Du könntest dir die Header der Mails holen und auf den Betreff checken.
Wenn mehrer Mails mit dem benötigten Betreff in der Mailbox sind, checkst du noch den Timestamp im Header.
Wie man sich Maiheader holt, kann ich dir aber leider nicht sagen.

Nightfly 3. Sep 2004 15:06

Re: nur bestimmte mails abhohlen
 
Sowas in der Art hab ich mir auch überlegt...bloß habs noch nich hinbekommen den header auszulesen :(

Dax 3. Sep 2004 15:06

Re: nur bestimmte mails abhohlen
 
Kuck mal in den Indy-Demos, da ist vielleicht was...

Bowler 3. Sep 2004 15:13

Re: nur bestimmte mails abhohlen
 
Ich habe sowas mal mit den Synapse-Units gemacht. Ich habe alle Header geholt (ich glaube, da gab es dort eine Funktion für), und konnte diese Header dann auswerten und entsprechend die Mails herunterladen.

http://www.ararat.cz/synapse/

Treffnix 3. Sep 2004 15:16

Re: nur bestimmte mails abhohlen
 
wenn tpopMail ein idPop3 ist, dann geht das mit

tpopMail.RetrieveHeader( i, aMsg );

Nightfly 3. Sep 2004 15:24

Re: nur bestimmte mails abhohlen
 
es ist...und was ist i dann für eine variable? *dummfrag*

Dax 3. Sep 2004 15:26

Re: nur bestimmte mails abhohlen
 
Die Nummer der Message, das Maximale i ist gleichzeitig die Anzahl der Messages in deinem Postfach.

Treffnix 3. Sep 2004 15:27

Re: nur bestimmte mails abhohlen
 
Na, dein Integer.

Die Funktion funktioniert genauso wie Retrieve, nur dass sie nur den Header abruft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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