Entwickler-Ecke
Internet / Netzwerk - [POP3 / IMAP] Probleme mit Email-Checker...
zakoon - Sa 15.11.08 16:33
Titel: [POP3 / IMAP] Probleme mit Email-Checker...
Hallo zusammen,
ich möchte eine kleine Anwendung schreiben, die mir anzeigt, ob auf meinem Email-Account ungelesene Nachrichten auf mich warten.
Ich habe es mit Indys TidImap4 und TidPop3 und jeweils Konten bei GMX und Web.de versucht.
POP3:
Mit POP3 hat zwar die Verbindung immer super geklappt, aber leider gibt mir Idpop31.CheckMessages die Anzahl aller Emails auf dem Server zurück, nicht nur der neuen. Um als nur die neuen Emails zu erhalten, müsste ich die Message-IDs lokal speichern und mit den ID's auf dem Server vergleichen. Leider kann diese Methode aber nicht erkennen, ob ich die Email bereits mit meinem Emailprogramm abgerufen habe, oder die Email über Web-Mail schon gelesen habe.
IMAP:
Bei IMAP gibt es ja die Eigenschaft idImap41.MailBox.UnseenMsgs, mit der ich die oben beschriebenen Schwierigkeiten leicht umgehen kann. Leider klappt bei IMAP aber die Authentifizierung nicht zuverlässig. Mit dem unten angegeben Code konnte ich zwar prima von Web.de die Daten auslesen, aber mit GMX klappt es gar nicht, hier bekomme ich schon bei dem Connect eine Exception (EIdClosedSocket).
Kann mir jemand einen Tipp geben, wie ich diese Aufgabe lösen könnte?
Vielen Dank! Zak.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| begin idImap41.Host := 'imap.gmx.net'; idImap41.Username:= UserNr; idImap41.Password:= Pass; if idImap41.Connect(true) then begin showMessage('Connected'); if idImap41.ConnectionState = csAuthenticated then if IdIMAP41.SelectMailBox('inbox') then begin showMessage('unseen:'+IntToStr(idImap41.MailBox.UnseenMsgs)); showMessage('complete:'+IntToStr(IdIMAP41.MailBox.TotalMsgs)); end; idImap41.Disconnect; end; end; |
Moderiert von
matze: Code- durch Delphi-Tags ersetzt
LexXis - Sa 15.11.08 20:30
Titel: Re: [POP3 / IMAP] Probleme mit Email-Checker...
zakoon hat folgendes geschrieben : |
Delphi-Quelltext 1:
| if idImap41.Connect(true) then |
|
Erwartet die Funktion nicht ein Integer als Parameter?
zakoon - So 16.11.08 01:57
Titel: Re: [POP3 / IMAP] Probleme mit Email-Checker...
Nein, Boolean. true für AutoLogin, false für kein Autologin (man muss dann die login-funktion etc. selbst ausführen).
LexXis - So 16.11.08 12:23
Verwendest du Indy 10? Ich verwende noch die 9er Version, da erwartet die Funktion ein Integer zwecks Timeout und versucht automatisch sich einzuloggen (ohne vorher nochmal nachzufragen). Information ist eben alles ;)
mfg
matze - So 16.11.08 12:37
du hast aber schon einen "Premium"-Account bei GMX oder? Denn bei den normalen Freemail Accounts wird ja IMAP gar nicht angeboten.
zakoon - Mo 17.11.08 15:10
matze hat folgendes geschrieben : |
du hast aber schon einen "Premium"-Account bei GMX oder? Denn bei den normalen Freemail Accounts wird ja IMAP gar nicht angeboten. |
Argh .... Nein, daran lags. Danke, da wäre ich 100 Jahren nicht drauf gekommen! Hab GMX schon seit Ewigkeiten neben meinen ganzen IMAP Konten im Thunderbird, bin gar nicht drauf gekommen, dass das ja nur ein POPer ist... ^^
matze - Mo 17.11.08 18:14
Ja manchmal liegt die Lösung doch so nah!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!