Entwickler-Ecke
Internet / Netzwerk - Nur neue e-mails von Mail-Server anzeigen
Luisk - So 04.01.09 16:54
Titel: Nur neue e-mails von Mail-Server anzeigen
Hallo,
wie kann ich über die Delphi-Indy pop3 Komponente erkennen, wie viele neue, ungelesene mails auf einem Mailserver sind ?
Gibt es sowas wie einen Status bei jeder mail, die anzeigt, ob sie schon gelesen wurde? Alle abzufragen ist kein Problem.
Danke
Luis
Moderiert von
Narses: überflüssige Zeilenumbrüche entfernt
mkinzler - So 04.01.09 16:59
Serverseitig nicht, du musst dir lokal speichern, welche du schon heruntergeladen hast ( uidls der Nachrichten reicht)
Luisk - So 04.01.09 17:10
Danke,
nicht gut, bräuchte die Info Serverseitig, da die mails von unterschiedlichen Rechnern u. Orten abgerufen werden.
In dieser IT-Branche funktioniert doch nichts, wie es sollte.
Gruß
Luis
mkinzler - So 04.01.09 17:11
In diesem Fall solltest du statt POP3 IMAP verwenden
Luisk - So 04.01.09 18:05
Danke,
welche Komponenten brauche ich für IMAP ?
Gibt es evtl ein Demo hierzu?
Gruß Luis
mkinzler - So 04.01.09 19:21
TIdIMAP. du musst hierfür aber Serverseitig einen IMAP-Server bzw. einen IMAP-fähigen Mailserver einsetzen. Was für einen Mailserver verwendest du? Beispiele sollten bei INDY/Delphi dabei sein
mkinzler - So 04.01.09 22:01
Sollte IMAP unterstützen
Luisk - So 04.01.09 22:16
Bei Delphi6 hab ich nur TIdIMAP4server gefunden und leider kein Bsp.
Gibts im Netz evtl Beispiele?
Luis
Luisk - Mo 05.01.09 02:11
zunächst mal Danke für den Tip mit IMAP
------------------------------------------
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var li:integer; begin idImap41.Host := 'imap.1und1.de'; idImap41.Username:= 'xxxx.xxx@xxxx'; idImap41.Password:= 'xxxxx'; idImap41.Connect(5000); showMessage('Connected'); if idImap41.ConnectionState = csAuthenticated then if IdIMAP41.SelectMailBox('inbox') then begin showMessage('unseen:'+IntToStr(idImap41.MailBox.UnseenMsgs)); showMessage('recent:'+IntToStr(IdIMAP41.MailBox.RecentMsgs)); showMessage('complete:'+IntToStr(IdIMAP41.MailBox.TotalMsgs)); end; idImap41.Disconnect; end; |
es läuft nun mit Delphi5 aber es gibt folgendes Problem:
idImap41.MailBox.UnseenMsgs zeigt immer 0 an
(damit ist die Funktion noch nicht brauchbar)
IdIMAP41.MailBox.RecentMsgs zeigt auch immer 0 an
IdIMAP41.MailBox.TotalMsgs zeit die richtige Anzahl an
bei imap.web.de ebenfalls
hat jemand ähnliche Erfahrugen gemacht ?
Danke für weitere Tips
Luis
Moderiert von
Narses: Delpih-Tags hinzugefügt
---
Moderiert von
Narses: Beiträge zusammengefasst---
Der Zugriff erfolgt über diese Bibliothek:
indy9.0.18_source.zip
Delete - Mo 05.01.09 11:57
Auch Indy's genannt.
Bitte schreibe deinen Delphi-Code in Delphi-Tags!Die findest du unter Bereich wenn du postest. :wink:
mfg,j.klugmann
Xentar - Mo 05.01.09 12:08
Dazu steht was in der Hilfe..
Zitat: |
Declaration
property UnseenMsgs: LongInt;
Summary
Indicates the number of unread messages in the current mailbox.
Description
UnseenMsgs is a LongInt property that indicates the number of messages in the currently selected mailbox that have not been read by the IMAP4 client.
UnseenMsgs is updated when the results from the TIdIMAP4.StatusMailBox method are parsed.
|
Demnach musst du wohl erst den Status der Mailbox abfragen.
Luisk - Mo 05.01.09 13:38
Danke, an alle. Es läuft.
hier der Code:
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:
| function imap41_gib_Anzahl_ungelesene_mails(in_host,in_user,in_password:string ):integer; var idImap41: TIdIMAP4; l_ungelesene:integer; begin idImap41:=TIdIMAP4.create(nil); idImap41.Host := in_host; idImap41.Username:= in_user; idImap41.Password:= in_password; idImap41.Connect(5000); result:=-1; if idImap41.ConnectionState = csAuthenticated then begin if IdIMAP41.SelectMailBox('inbox') then begin IdIMAP41.StatusMailBox('inbox',idImap41.MailBox); l_ungelesene:=idImap41.MailBox.UnseenMsgs; result:=l_ungelesene; end; end; idImap41.Disconnect; idImap41.destroy; end; |
Gruß
Luis
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
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!