Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit email empfang (https://www.delphipraxis.net/173940-problem-mit-email-empfang.html)

Natcree 25. Mär 2013 11:12

Problem mit email empfang
 
Ich möchte mir emails über acount ins Programm laden was auch funktioniert.

Er soll aber die Verbindung deconnecten wenn keine EMails vorhanden sind. bevor er versucht die email runter zu laden.

Hier mal der code

Delphi-Quellcode:
if IdPop31.Connected then mailcount:=idpop31.CheckMessages;
for Index := 0 to pred(mailcount) do
begin
  try
      if mailcount<1 then IdPOP31.Disconnect;
      if mailcount<1 then else memo1.Clear;
      if mailcount<1 then else edit1.Clear;
      if mailcount<1 then else memo2.Clear;
      if mailcount<1 then else idmessage1.clear;
      if mailcount<1 then else IdPOP31.RetrieveHeader(Index, IdMessage1);
      if mailcount<1 then else memo1.text := (IdMessage1.From.Text);;
      if mailcount<1 then else IdPOP31.Retrieve(index,idMessage1);
      if mailcount<1 then else edit1.text := IdMessage1.Subject;
      if mailcount<1 then else IdPOP31.Retrieve(index,idMessage1);
      if mailcount<1 then else Memo2.text := IdMessage1.body.GetText;
      if mailcount<1 then else IdPOP31.Delete(index);
      if mailcount<1 then else IdPOP31.Disconnect;

    finally
idmessage1.Free;
end;
end;
end;
Er macht es aber nicht Wo steckt hier der Fehler drinn ???

Klaus01 25. Mär 2013 11:37

AW: Problem mit email empfang
 
Zitat:

Zitat von Natcree (Beitrag 1208706)
Ich möchte mir emails über acount ins Programm laden was auch funktioniert.

Er soll aber die Verbindung deconnecten wenn keine EMails vorhanden sind. bevor er versucht die email runter zu laden.

Hier mal der code

Delphi-Quellcode:
if IdPop31.Connected then mailcount:=idpop31.CheckMessages;
for Index := 0 to pred(mailcount) do
begin
  try
      if mailcount<1 then IdPOP31.Disconnect;
      if mailcount<1 then else memo1.Clear;
      if mailcount<1 then else edit1.Clear;
      if mailcount<1 then else memo2.Clear;
      if mailcount<1 then else idmessage1.clear;
      if mailcount<1 then else IdPOP31.RetrieveHeader(Index, IdMessage1);
      if mailcount<1 then else memo1.text := (IdMessage1.From.Text);;
      if mailcount<1 then else IdPOP31.Retrieve(index,idMessage1);
      if mailcount<1 then else edit1.text := IdMessage1.Subject;
      if mailcount<1 then else IdPOP31.Retrieve(index,idMessage1);
      if mailcount<1 then else Memo2.text := IdMessage1.body.GetText;
      if mailcount<1 then else IdPOP31.Delete(index);
      if mailcount<1 then else IdPOP31.Disconnect;

    finally
idmessage1.Free;
end;
end;
end;
Er macht es aber nicht Wo steckt hier der Fehler drinn ???


Delphi-Quellcode:
if IdPop31.Connected then mailcount:=idpop31.CheckMessages;
if mailCount > 0 then
  begin
    for Index := 0 to pred(mailcount) do
      begin
         memo1.Clear;
         edit1.Clear;
         //... stuff deleted
         IdPOP31.Disconnect;
      end;
  end
else
  idPop32.Disconnect;
Grüße
Klaus

end;

Natcree 25. Mär 2013 11:45

AW: Problem mit email empfang
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke erstmal zeigt mir aber fehler an

Delphi-Quellcode:
if IdPop31.Connected then mailcount:=idpop31.CheckMessages;

if mailcount > 0 then
  begin
    for Index := 0 to pred(mailcount) do
      begin
        memo1.Clear;
        edit1.Clear;
        memo2.Clear;
        idmessage1.clear;
        idPOP31.RetrieveHeader(Index, IdMessage1);
        memo1.text := (IdMessage1.From.Text);;
        IdPOP31.Retrieve(index,idMessage1);
        edit1.text := IdMessage1.Subject;
        IdPOP31.Retrieve(index,idMessage1);
        Memo2.text := IdMessage1.body.GetText;
        IdPOP31.Delete(index);
        idmessage1.Free;
        IdPOP31.Disconnect;
      end;
  end
else
  IdPOP31.Disconnect;
end;
Siehe Bild

Sir Rufo 25. Mär 2013 12:07

AW: Problem mit email empfang
 
Du musst von 1 bis count zählen lassen

Klaus01 25. Mär 2013 12:11

AW: Problem mit email empfang
 
.. wenn Du mails aus der Queue löscht dann
mache das bitte von oben/hinten nach unten/vorne.

Delphi-Quellcode:
if mailcount > 0 then
  begin
    for Index := pred(mailCount) downto 0 do
      begin
        memo1.Clear;
        edit1.Clear;
        memo2.Clear;
        idmessage1.clear;
        idPOP31.RetrieveHeader(Index, IdMessage1);
        memo1.text := (IdMessage1.From.Text);;
        IdPOP31.Retrieve(index,idMessage1);
        edit1.text := IdMessage1.Subject;
        IdPOP31.Retrieve(index,idMessage1);
        Memo2.text := IdMessage1.body.GetText;
        IdPOP31.Delete(index);
        //
        //IdPOP31.Disconnect;
      end;
    idmessage1.Free;
    IdPOP31.Disconnect;
  end
else
  IdPOP31.Disconnect;
end;
Grüße
Klaus

Natcree 25. Mär 2013 12:14

AW: Problem mit email empfang
 
Wenn ich auf 1 setzte dann disconnected er nicht

Natcree 25. Mär 2013 12:17

AW: Problem mit email empfang
 
Liste der Anhänge anzeigen (Anzahl: 1)
und nach klaus01 kommte Fehler meldung



kann es hierdrann liegen mailcount:=idpop31.CheckMessages;

p80286 25. Mär 2013 12:26

AW: Problem mit email empfang
 
Zum einen sind vollständige Sätze kein Fehler, dann fällt es uns etwas einfacher Dein Anliegen zu verstehen.
Und wenn in Sir Rufo schreibt das die Schleife von 1 bis count() läuft, dann sollte es im umgekehrten Fall genauso sein.
Also
Delphi-Quellcode:
Z:=count(irgendwas) downto 1
Gruß
K-H

Klaus01 25. Mär 2013 12:29

AW: Problem mit email empfang
 
Delphi-Quellcode:
if mailcount > 0 then
  begin
    for Index := mailCount downto 1 do // wie Sir Rufo schon geschrieben hat
      begin
        memo1.Clear;
        edit1.Clear;
        memo2.Clear;
        idmessage1.clear;
        idPOP31.RetrieveHeader(Index, IdMessage1);
        memo1.text := (IdMessage1.From.Text);;
        IdPOP31.Retrieve(index,idMessage1);
        edit1.text := IdMessage1.Subject;
        IdPOP31.Retrieve(index,idMessage1);
        Memo2.text := IdMessage1.body.GetText;
        IdPOP31.Delete(index);
        //
        //IdPOP31.Disconnect;
      end;
    idmessage1.Free;
    IdPOP31.Disconnect;
  end
else
  IdPOP31.Disconnect;
end;
Grüße
Klaus

DeddyH 25. Mär 2013 12:39

AW: Problem mit email empfang
 
Möglicherweise habe ich es nicht richtig verstanden, aber ist es nicht irgendwie kompletter Unfug, in einer Schleife fortwährend Komponenten zu leeren und anschließend neue Texte zuzuweisen?


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