Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi über pop3 Mails abfragen? (https://www.delphipraxis.net/105935-ueber-pop3-mails-abfragen.html)

gandime 2. Jan 2008 15:15


über pop3 Mails abfragen?
 
Hi,
ich habe mach ziemlich nah am Indy Beispiel gehalten:
Delphi-Quellcode:
  POP.Host:='pop.web.de';
  POP.Username:='aaa';
  POP.Password:='bbb';
  POP.Connect;
  if pop.Connected then
  begin
    i_mails:=POP.CheckMessages;
    if i_mails > 0 then
    begin
      sl_mail:=tstringlist.create;
      for I := 1 to i_mails do
      begin
        Msg.Clear;
        POP.RetrieveHeader(i,Msg);
          Msg.MessageParts.Count;
          for ii := 0 to Pred(Msg.MessageParts.Count) do
          begin
            application.processmessages;
            if Msg.MessageParts.Items[ii] is TIdText then
            begin
//              Memo1.Lines.Clear;
              Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[ii]).Body);
            end;
          end;
      end;
    end
    else
    begin

    end;
  end;
end;
Wo ist mein fehler?
Im Beispiel funktioniert es einwandfrei und bei meinem Code landet in dem Memo nicht!

mfg
gandime

tr909 2. Jan 2008 15:37

Re: über pop3 Mails abfragen?
 
probier mal das hier.
Delphi-Quellcode:
Msg.MessageParts.Count > 0 then
for ii := 0 to Pred(Msg.MessageParts.Count) do
begin
   application.processmessages;
   if Msg.MessageParts.Items[ii] is TIdText then
   begin
//   Memo1.Lines.Clear;
     Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[ii]).Body);
   end;
end
else begin
 memo1.Lines.AddString(IdMsg.Body);
end;
in deinem Fall wird die schleife ja nicht ausgeführt, wenn Msg.MessageParts.Count = 0 ist.

Gruß
tr909

dominikkv 2. Jan 2008 16:28

Re: über pop3 Mails abfragen?
 
Der Delphi-Debugger eignet sich hierfür hervorragend.
Einfach einen Breakpoint am Anfang der prozedure setzen (zB bei POP.Host:='pop.web.de';), dann das Programm über Delphi starten und die Aktion ausführen das du bei der Procedure landest.
Beim Breakpoint wird nun automatisch angehalten und du kannst schrittweise mit F8 die Befehle ausführen.

gandime 2. Jan 2008 16:32

Re: über pop3 Mails abfragen?
 
jetzt hab ich noch nen anderen fehler:
Delphi-Quellcode:
for ii := 0 to Pred(Msg.MessageParts.Count) do
Pred(Msg.MessageParts.Count)=0

vorher wurde aber

Delphi-Quellcode:
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[ii]).Body);
ausgelöst


ich hab in meiner Procedure schon überall Breakepoints;-)

edit:

Delphi-Quellcode:
Msg.Body.count=0
ich verstehe einfach nicht was ich anders als in der Demo von indy mache....

edit2:
Fehler gefunden :-D
man nehme den Befehl zum mail abfragen :-D
Delphi-Quellcode:
POP.Retrieve(i,Msg);
und nicht
Delphi-Quellcode:
POP.RetrieveHeader(i,Msg);


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.

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