![]() |
nur bestimmte mails abhohlen
Delphi-Quellcode:
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.
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; 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.. |
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. |
Re: nur bestimmte mails abhohlen
Sowas in der Art hab ich mir auch überlegt...bloß habs noch nich hinbekommen den header auszulesen :(
|
Re: nur bestimmte mails abhohlen
Kuck mal in den Indy-Demos, da ist vielleicht was...
|
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.
![]() |
Re: nur bestimmte mails abhohlen
wenn tpopMail ein idPop3 ist, dann geht das mit
tpopMail.RetrieveHeader( i, aMsg ); |
Re: nur bestimmte mails abhohlen
es ist...und was ist i dann für eine variable? *dummfrag*
|
Re: nur bestimmte mails abhohlen
Die Nummer der Message, das Maximale i ist gleichzeitig die Anzahl der Messages in deinem Postfach.
|
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