Entwickler-Ecke
Internet / Netzwerk - Indy Pop3...
Leathl - Mi 01.01.03 19:46
Titel: Indy Pop3...
---
Millo - Mi 01.01.03 21:23
Moin,
Das sollte eigentlich funktionieren. Welcher Fehler kommt den genau?
Die NMPOP3 findest du unter der Registerkarte FastNet.
Leathl - Mi 01.01.03 21:34
---
Millo - Mi 01.01.03 23:38
Tja so recht weis ich auch nicht, ich kenn den Fehler noch ,hatte ich auch ein paar mal aber es felt mir nicht ein wo.
Komisch is das er nicht auftritt wenn du die Parameter direkt übergibst.
Ich hab das ganze jetzt mal asuprobiert und bei mir ging es ohne Problem
Hier ist mal der Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| var Index:Integer; begin idPop31.Host := Edit1.Text; idPop31.UserId := Edit2.Text; idPop31.Password := Edit3.Text; idPop31.Port := 110; idPop31.Connect;
if Form1.idpop31.CheckMessages > 0 then begin For Index := 1 to Form1.idPOP31.CheckMessages do begin ListBox1.Clear; idPOP31.RetrieveHeader(intIndex, Form1.IdMessage1); ListBox1.Items.Add('Account:'); ListBox1.Items.Add(Form1.IdMessage1.Subject); ListBox1.Items.Add(Form1.IdMessage1.From.Text); end; end else ShowMessage('Keine Nachrichten'); end; |
Ich hab auch mal die Ausgabe mit rein gemacht falls du da was vergessen hast. Bei fragen einfach fragen.
Leathl - Do 02.01.03 00:16
---
Millo - Do 02.01.03 00:39
moin,
So ich hab den Code etwas vereinfacht und getestet bei mir ging alles soweit ich hab sonst auch keine Ahnung mehr woran es noch lieger könnte.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Button1Click(Sender: TObject); begin try IdPOP31.Host:= Edit1.Text; IdPOP31.Userid:= Edit2.Text; IdPOP31.Password:= Edit3.Text; IdPOP31.Port:= 110; IdPOP31.Connect; except ShowMessage('Fehler passiert'); end;
if IdPOP31.CheckMessages > 0 then begin ListBox1.Items.Add(IntToStr(IdPOP31.CheckMessages)+' Neue Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); end else ListBox1.Items.Add('Keine neuen Nachrichten vorhanden...');
IdPOP31.Disconnect; end; |
TIP: Mit dem Try except Block kannst du auf Fehler reagieren ist bei solchen Sachen immer ganz gut das rein zu machen.
Leathl - Do 02.01.03 01:01
---
Millo - Do 02.01.03 03:02
MMHHHH...
Naja ob man die NMPOP3 runterladen kann weiss ich nicht aber bei Torry gibs nen paar gute spezielle E-Mail Komponenten.
PS: Würd mich echt mal interresieren warum das bei dir nicht läuft
BungeeBug - Do 02.01.03 11:41
Hi du .... erst mal musst ich wieder meckern ... schreib doch mal den Code vernünftig ... mit eingerückten Codeblöcken ... standart Befehle (WHILE...DO ; WITH ... DO ; IF ... THEN ...) immer GROSS usw ...
| Leathl hat folgendes geschrieben: |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button1Click(Sender: TObject); begin IdPOP31.Host:= Edit1.Text; IdPOP31.Username:= Edit2.Text; IdPOP31.Password:= Edit3.Text; IdPOP31.Port:= 110; IdPOP31.Connect; if Form1.IdPOP31.CheckMessages > 0 then ==>BEGIN<== ListBox1.Items.Add('Neue Nachricht(en) vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...') ==>END<== else ==>BEGIN<== ListBox1.Items.Add('Keine neuen Nachrichten vorhanden...'); IdPOP31.Disconnect; ==>END;<== end; |
so hab ichs und ich entdecke auf die schnelle auch keine fehler oder?
dann sacht er immer END erwartet aber ELSE gefunden :(
==> Du musst (so weit ich das mitbekommen habe) einen IF THEN ELSE - Block so auf bauen
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| IF <Argument> THEN BEGIN <Befehle> END ELSE BEGIN <Befehle> END; END; |
da sonst nur immer der Befehl direkt hinter den THEN bzw ESLE Ausgefürt wird (der rest wird IMMER auch wenn die Bedingung zutrifft /bzw NICHT zutrifft ausgefürt ... das kann zu Fehlern führen<==
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.Button1Click(Sender: TObject); begin IdPOP31.Host:= Edit1.Text; IdPOP31.Username:= Edit2.Text; IdPOP31.Password:= Edit3.Text; IdPOP31.Port:= 110; IdPOP31.Connect; if IdPOP31.CheckMessages > 0 then ListBox1.Items.Add('Neue Nachricht(en) vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages = 2 then ListBox1.Items.Add('2 Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages = 3 then ListBox1.Items.Add('3 Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages = 4 then ListBox1.Items.Add('4 Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages = 5 then ListBox1.Items.Add('5 Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages > 5 then ListBox1.Items.Add('Mehr als 5 Nachrichten vorhanden...'); ListBox1.Items.Add(IntToStr(IdPOP31.RetrieveMailBoxSize div 1024)+'KByte(s) belegt...'); if IdPOP31.CheckMessages = 0 then ListBox1.Items.Add('Keine neuen Nachrichten vorhanden...'); if IdPOP31.CheckMessages = 0 then ListBox1.Items.Add('Keine neuen Nachrichten vorhanden...'); IdPOP31.Disconnect; end; |
Auch hier wieder ... Codeblöcke einrücken ... sonst kann mans nur schlecht bzw gernicht lesen und verstehen
so funzt alles, ausser, dass der fehler kommt :( |
Ich hoffe ich konnte dir helfen, und nicht böse sein weil ich gemeckert hab :)
MfG BungeeBug
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!