Entwickler-Ecke
Internet / Netzwerk - eMails prüfen, bitte helft mir!
DanielB - Do 17.10.02 22:48
Titel: eMails prüfen, bitte helft mir!
Erstmal "Hi an alle!"
Bevor ich hier mit tausenden von Posts zugebombt werde, möchte ich sagen, dass ich Delphi erst vor ca. 3 Monaten angefangen habe zu lernen!
Im Prinzip ist mir klar, wie man in Delphi programmiert! Nun möchte ich aber eine "Mail Checker" erstellen.
Dabei will ich, dass das Programm auf das POP3-Konto zugreift und schaut, ob Mails vorhanden sind. Es sollen keine Mails runtergeladen oder angesehen werden, wirklich nur nachsehen, ob welche vorhanden sind.
Also habe ich angefangen herumzubasteln. Aber ich schaffe es nicht! In der Help-File von Delphi steht zwar was zu NMSMTP und NMPOP3, aber da steige ich nicht ganz durch. Dann habe ich mir die ICS-Komponenten runtergeladen und installiert. Damit finde ich es aber auch nicht wirklich einfacher.
Wenn jemand ein TUT (am besten in deutsch, muss aber nicht sein) kennt oder mir sonst irgendwie helfen kann, wäre ich sehr dankbar!
Gruß
DanielB
Millo - Fr 18.10.02 00:37
Moin
Also wenn du nur auf Mails überprüfen willst brauchst du auch nur ne POP3 Komponente. Ich hab in dem Beispiel mal die NMPOP3 benutzt
Als erstes musst du dich mit dem Server verbinden:
Quelltext
1: 2: 3: 4: 5:
| NMPOP31.Host := 'Name des Host'; NMPOP31.Port := die Port Nummer; NMPOP31.UserID := Den benutzernamen; NMPOP31.Password := 'Das Passwort'; NMPOP31.Connect; |
Ich denke das ist alles leicht nachzuvollziehen. (Die Standart Port Nummer ist überings 110).
Als nächstes lässt du die Mails zählen dafür brauch man nur einen Befehl:
Quelltext
1:
| countMails := NMPOP31.MailCount |
countMails ist in disem Fall eine Variable vom Integer Typen. Man kann natürchlich auch den Wert direkt an ein Label oder so geben.
Dann muss man nur noch die Verbindung trennen
Falls du nch fragen hast kannst dich ja einfach melden.
DanielB - Fr 18.10.02 08:56
Hi Millo!
Also ne procedure connect erstellen, die aufgerufen wird, wenn Button1 geklickt wird.
Ok, im procedure connect dann verbinden und Mails prüfen.
Danach mit LabelX.Caption := 'Sie haben ' + IntToStr(countMails) + ' neue Nachricht(en)!'; ?
Gehe ich da richtig von aus?
Gruß
Daniel
DanielB - Fr 18.10.02 09:17
Es geht nicht! Ich poste hier mal einen Teil des Codes:
Delphi-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: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Psock, NMpop3;
type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Label2: TLabel; Edit2: TEdit; Button1: TButton; Label3: TLabel; NMPOP31: TNMPOP3; procedure Button1Click(Sender: TObject); procedure connecting; private public end;
var Form1: TForm1; UID: string; PASS: string; countMails: Integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); begin UID := Edit1.Text; PASS := Edit2.Text; connecting; Label3.Caption := 'Es warten ' + IntToStr(countMails) + ' Nachrichten!'; end;
procedure connecting; begin NMPOP3.Host := 'pop.t-online.de'; NMPOP3.Port := '110'; NMPOP3.UserID := UID; NMPOP3.Password := PASS; NMPOP3.Connect; countMails := NMPOP31.MailCount; NMPOP3.Disconnect; end;
end. |
Er bringt mir immer mehrere Compiler-Errors:
Undeclared identifier 'Host', 'port',.......
Kann mir jemand helfen?
Gruß
Daniel
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
LCS - Fr 18.10.02 09:35
Hi
Schreib das mal so:
Delphi-Quelltext
1: 2: 3:
| procedure TForm1.connecting; begin ... |
Gruss Lothar
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
DanielB - Fr 18.10.02 11:36
Hi!
Danke für deine Antwort! Programm geht jetzt!
Gruß
Daniel
benholio - Sa 23.11.02 01:13
Titel: Fehler
Hi, ich habe diesen Code auch mal ausprobiert, bekomme aber noch folgenden Fehler angezeigt:
Diese Fehler kommen bei den uses:
[Fataler Fehler] Unit1.pas(8): Datei nicht gefunden: 'NMpop3.dcu'
(bei: NMpop3)
[Fataler Fehler] Unit1.pas(8): Datei nicht gefunden: 'NMConst.dcu'
(bei: Psock)
Kann mir jemand helfen ?
BungeeBug - Sa 23.11.02 08:09
dann ist dir ne Hilfe-Datei abhanden gekommen ... ich kann dir aber nur sagen das du diese (ka welche) unter Tools->Evoirement Optionen -> Library wieder hinzufögen kannst. Für gewöhnlich liegen die Hilfedatein im gleichen Verzeichniss wo auch die jeweiligen Kompos liegen.
€dit
ich denk mal $(DELPHI)\Bin die variable sollte dir da fehlen oder?
Jetzt sollte auch das wieder gehn ....
€dit €nd€
MfG Bungee
benholio - Sa 23.11.02 16:02
Mh ich weiss nicht genau. Kenn mich damit nicht aus.
aber wenn ich den Code einfüge, dann gibt er zwar keine Fehler mehr aus, aber compiliert nur ein normales Formular und nicht das, was ich bearbeitet habe...
Xion - Mo 15.05.06 15:52
hab folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.FormCreate(Sender: TObject); var countMails: integer; begin Application.ShowMainForm:=False; NMPOP3.Host := 'pop3.web.de'; NMPOP3.Port := 110; NMPOP3.UserID := Nickname; NMPOP3.Password := Passwort; NMPOP3.Connect; countMails := NMPOP3.MailCount; NMPOP3.DisConnect; ShowMessage('Mail bekommen! ('+inttostr(countMails)+')'); Application.Terminate; end; |
jetzt hab ich folgendes Problem:
1x hat das Programm funktioniert, jetzt sagt er
'Authentication failed'. Was hat das zu bedeuten?
iKilledKenny - Mo 15.05.06 16:22
ich bin der meinung web.de hat eine beschränkung drin, dass man nur alle 15 minuten auf sein pop-konto zugreifen darf.
grüße
alex
raiguen - Mo 15.05.06 16:33
Moin :-)
Bei WEB.DE gibt es eine Einschränkung: sofern man 'nur' den kostenfreien Account hat, muss der Abstand zwischen den einzeln 'Anfragen' auf das Postfach mindestens 15 Minuten betragen; ist die Zeitspanne kleiner, kann es zu der beschriebenen 'Fehler'meldung kommen.
Xion - Mo 15.05.06 17:07
ok, thx
Xion - Di 04.07.06 13:51
folgende Frage hab ich jetzt:
wie kann ich das ganze unter Delphi 2005 machen?? Da gibts kein NMPOP3...
Xion - Mi 05.07.06 14:15
Kann man das mit Indy lösen, oder gibts da ne komponente wie in D6??? (ich will mit D2k5 abrufen, wieviele mails ich bekommen habe)
demo88 - Fr 07.07.06 12:41
Bei den Indys gibt es die Komponente IdPOP3. Geht da warscheinlich genauso.
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!