![]() |
mails kontrollieren
hi ihrs
ich weiss das es ma ein os/freeware tool gab was geguckt hat ob emails aufm server waren (oder halt nicht) ich finds aba nit mehr weiss einer wies geht? oder findet einer diesen thread wieda? |
Re: mails kontrollieren
wies geht: von den Indys die Pop3-Client-Componente nehmen und mit dem server verbinden. und prüfen ob neue id's im kasten sind
|
Re: mails kontrollieren
hmm...mein problem ist das ich noch NIE was mit indy gemacht hab...
danke für den tipp, aber könntest dus etwas kleinschrittiger machen? also ich will zu web.de (pop3.web.de) also das mit username+pw habbich, aber wo muss pop3.web.de rein, und welcher port? |
Re: mails kontrollieren
such mal nach "idpop3" da gibt es ein paar Beiträge. Die Komponente ist recht simpel zu nutzen. Einfach mit Connect zu dem entsprechenden Server verbinden und dann sind die Methoden von TidPop3 eigentlich selbst erklärend. ansonsten gibt es auch noch eine Hilfe für die Indies, und wenn du an einer bestimmten Stelle nicht weiterkommst meld dich einfach nochmal. Oder du sagst was du konkret willst. Möchstest du nur schauen ob eine neue Mail angekommen ist oder die mails auch abholen und anzeigen etc.?
|
Re: mails kontrollieren
Zitat:
versuche es mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin IdPOP31.Disconnect; IdPOP31.Host := 'pop3.web.de'; IdPOP31.Username := 'username'; IdPOP31.Password := 'passwort'; IdPOP31.Connect(); end; procedure TForm1.IdPOP31Connected(Sender: TObject); var mails : Integer; begin mails := IdPOP31.CheckMessages; if (mails>0) then begin ShowMessage(Format ('Es gibt %d neue Nachrichten',[mails])); end; end; |
Re: mails kontrollieren
:(
im prinzip funzt es wohl, aber hier gibts einen fehler Zitat:
und danach kommt noch was von wegen unbekanntes kommanga bei der connect-methode :gruebel: das kommt auch wenn die login-daten Nicht stimmen... |
Re: mails kontrollieren
:shock:
Ich hätte den Code wohl testen sollen. Kommt bei mir auch. Ich teste es noch einaml. |
Re: mails kontrollieren
also folgendes funktioniert bei gmx (mail.gmx.net):
Delphi-Quellcode:
var LMsgCount, LCount: Integer;
LMsg: TIdMessage; LItem: TListItem; begin ListView1.Clear; IdPOP3.Username := Edit1.Text; IdPOP3.Password := Edit2.Text; if not IdPOP3.Connected then IdPOP3.Connect(10000); LMsgCount := IdPop3.CheckMessages; LMsg := TIdMessage.Create(nil); for LCount := 0 to LMsgCount - 1 do begin LMsg.Clear; IdPOP3.Retrieve(LCount, LMsg); LItem := ListView1.Items.Add; LItem.Caption := LMsg.MsgId; LItem.SubItems.Add(LMsg.Subject); LItem.SubItems.Add(LMsg.From.Address); LItem.SubItems.Add(LMsg.ReplyTo.EMailAddresses); LItem.SubItems.Add(LMsg.Recipients.EMailAddresses); end; LMsg.Free; IdPOP3.Disconnect; |
Re: mails kontrollieren
Zitat:
WIESO gibt web.de 'WEB.DE' zurück??? kann das irgendwer ma bei gmx, yahoo, netcologne...ausprobieren, was da kommt? gmx is schon da... |
Re: mails kontrollieren
Delphi-Quellcode:
das is ja das entscheidende..., ich teste mal mit connect(10000)
IdPOP3.Username := Edit1.Text;
IdPOP3.Password := Edit2.Text; if not IdPOP3.Connected then IdPOP3.Connect(10000); LMsgCount := IdPop3.CheckMessages; funzt nicht |
Re: mails kontrollieren
probier mal obs gesamt funktioniert. eventuell darf das ganze einfach nicht im "OnConnected" ausgeführt werden!! Mach einfach alles im Buttonclick-Event
|
Re: mails kontrollieren
so, das funzt, wenns im buttonclick is....
aber nu will ich ja die NEUEN haben... muss ich mir dann in ner datei sämtliche ids merken? |
Re: mails kontrollieren
genau, du musst dir die ID's merken um später sagen zu können welche neu sind und welche nicht. Wenn es dir nur darum geht festzustellen ob neue nachrichten da sind kannst du die Methode
UIDL benutzen. Diese liefert dir alle ID's zurück aus der Mailbox Zitat:
|
Re: mails kontrollieren
supi
aber was wenn ich die abfrage, ne mail lösche, ne neue kommt, kann die dieselbe id haben? |
Re: mails kontrollieren
Zitat:
|
Re: mails kontrollieren
die Frage ist mit "NEIN" zu beantworten. Jede EMail hat eine ID welche eindeutig sein sollte deswegen auch die Bezeichnung ID.
[Edit]Mal wieder zu langsam gewesen :cry: [/Edit] |
Re: mails kontrollieren
Ich glaube, dass es auch deutlich einfacher geht, herauszufinden, wieviele neue E-Mails es gibt.
Ich habe das mal mit PHP gemacht, und eine Funktion geschrieben, welche die Anzahl an ungelesenen E-Mails zurückgibt. Mir würde es sehr wundern, wenn das in Delphi nicht so einfach möglich wäre. Hier die PHP-Funktion:
Code:
Wie zu sehen ist, gibt es hier eine Variabe mit Wert "SA_UNSEEN", die bewirkt, dass die ungelesenen E-Mails herausgefiltert werden.
function mailcheck ($server, $protokoll, $username, $passwort, $flag = SA_UNSEEN)
{ if ($protokoll == "imap") { $handle = imap_open ("{" . $server . ":143}INBOX", $username, $passwort); $daten = imap_status ($handle, "{" . $server . ":143}INBOX", $flag); $anzahl = $daten->unseen; imap_close ($handle); return $anzahl; } elseif ($protokoll == "pop3") { $handle = imap_open ("{" . $server . "/pop3:110}INBOX", $username, $passwort); $daten = imap_status ($handle, "{" . $server . "/pop3:110}INBOX", $flag); $anzahl = $daten->unseen; imap_close ($handle); return $anzahl; } else echo " [b]Fehler in Funktion mailcheck:[/b] Bitte \"pop3\" oder \"imap\" als Protokoll angeben ! "; } |
Re: mails kontrollieren
toll, da ich kein php kann hilftmir das so ungefähr 0 weiter...
wie heissen denn die befehle in delphi? |
Re: mails kontrollieren
Der Punkt ist, dass mit imap_status (gibt's glaub ich auch unter delphi) ein Parameter übergeben wird, welche E-Mails ausgewählt werden sollen.
Probier doch mal ![]() (Wahrscheinlich eher IdIMAP4.status () oder so ...) Auf jeden Fall was mit Status. |
Re: mails kontrollieren
aba ich mach das doch per pop3, und nicht per imap.... :gruebel:
|
Re: mails kontrollieren
sind in PHP die gleichen Funktionen mit nem anderen Port.
sonst guck halt bei pop3 nach ingender funktion mit status im namen |
Re: mails kontrollieren
Es gibt bei Pop3 auch den Vermerk ob eine Mail gelesen oder ungelesen ist. Allerdings muss man den Status (gelesen) dann auch setzen wenn man die mails abgerufen hat sonst sind sie weiterhin ungelesen und manchmal ist es eben nicht gewünscht das eine mail immer gleich als gelesen markiert wird
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr. |
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