Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Delphi 8.0 , Indy und POP.retrieve PROBLEM (https://www.delphipraxis.net/16953-delphi-8-0-indy-und-pop-retrieve-problem.html)

Samashy 26. Feb 2004 09:50


Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe folgendes Problem... ich möchte gern im Delphi 8.0 NET ein kleines Programm schreiben, welches EMails abholt und den Anhang in ein bestimmtes Verzeichnis packt und die EMails vom Server entfernt. :lol:

Delphi-Quellcode:
procedure Thauptform.Button1Click(Sender: TObject);
var i,a,x:integer;
nachricht:TIdMessage;
begin
 TRY
   screen.Cursor:=crHourglass;
   nachricht:=TIdMessage.Create(nil);
   POPi.Host := 'xxxxxxxxxxxxx';
   POPi.Username := 'xxxxxxxxxxxxxxxxxx';
   POPi.Password := 'xxxxxxxxxxxx';
   try
        POPi.Connect;
        x:=POPi.CheckMessages;
        for i := 1 to x do begin      
          POPi.Retrieve(i, Nachricht);
          for a:= 0 to Nachricht.MessageParts.Count do
          begin
              IF (Nachricht.MessageParts.Items[a] is TIdAttachment) then
               TIdAttachment(Nachricht.MessageParts.Items[a]).SaveToFile
               (TIdAttachment(Nachricht.MessageParts.Items[a]).filename);
          end;
          Nachricht.Clear;
        end;
   finally
        POPi.Disconnect;
        nachricht.free;
   end;
   screen.Cursor:=crDefault;
 except
       on E: Exception do begin
        screen.Cursor:=crDefault;
        showmessage(E.Message)
       end
 end
Die Fehlermeldung ist im Anhang... :cry: Was mache ich denn falsch?

Romy

Robert_G 26. Feb 2004 11:13

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Vielleicht so:
Delphi-Quellcode:
  ...
        for i := 0 to pred(x) do
        begin      
          POPi.Retrieve(i, Nachricht);
          for a:= 0 to pred(Nachricht.MessageParts.Count) do

Samashy 26. Feb 2004 12:17

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Danke für Deine Hilfe, aber leider kommt der Fehler :cry: beim
Delphi-Quellcode:
POPi.Retrieve(i, Nachricht);
Habe ich beim Deklarieren der TIdMessage Komponente was falsch gemacht? :wall:

AnTiPrimaTe 26. Feb 2004 17:19

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Hallo,
was ist denn wenn POPi.CheckMessages eine "0" liefert?
Liegen denn im Postfach irgendwelche Mails?
Ich würde in die for-Schleife nur dann gehen, wenn x>0 ist.

Gruß

mirage228 26. Feb 2004 17:28

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
eine for-to-schleife wird nicht ausgeführt, wenn der 2te wert kleiner als der erste ist. (für sowas ist ja eine for-downto-schleife da)

mfG
mirage228

AnTiPrimaTe 26. Feb 2004 17:38

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
stimmt. Da habe ich nicht mal wieder nicht zu Ende gedacht.
Also ich habe schon mit Indy gearbeitet,
kenne das Fehlerbild so nicht.
Was aber immer hilft, mit Telnet (oder Outlook) auf den POP3-Server
zu gehen, und mal schauen, ob die Mails da tatsächlich liegen.

Zweiter Vorschlag, beim constructor von TIdMessage nen Component zu übergeben.
Wir machen das so.

Samashy 26. Feb 2004 18:22

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Die Email liegt da. Benutzt man popi.retrieveHeaders, zeigt er sie mir an! Ich habe die Messagekomponente auch schon mal einfach auf die Form gelegt. Gleiches Problem.

:cry:
Romy

AnTiPrimaTe 26. Feb 2004 18:47

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
also ich hatte schon öfter mit Indy Probleme,
machmal waren das einfach Bugs in Indy selbst,
ich musste schon mal die Sources von Indy anpacken.
Versuch mal mit dem Debugger in Indy-Units zu gehen.
hast Du auf der Indy-Seite mal geschaut?

Samashy 26. Feb 2004 18:53

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Wäre ja echt kraß, wenn Retrieve... eigentlich die wichtigste Methode einen Bug hätte! :|

AnTiPrimaTe 26. Feb 2004 18:55

Re: Delphi 8.0 , Indy und POP.retrieve PROBLEM
 
Es kann daran liegen, dass Du einen "exotischen" POP3-Server einsetzt,
dann kann schon mal der Parser auf die Schnauze fallen.
Auf was für einen Server connectest Du denn?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz