Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Implementierung: Neue Email bei GMX erhalten (https://www.delphipraxis.net/29051-implementierung-neue-email-bei-gmx-erhalten.html)

Dannyboy 3. Sep 2004 09:27


Implementierung: Neue Email bei GMX erhalten
 
Hallo Emailfans,
ich würde gern mit Delphi ein Programm schreiben, welches mein Emailaccount bei GMX checkt und mir bescheid gibt, wenn ich eine neue Email habe.
Das Herunterladen der Email ist nicht notwendig, da ich mich mit dem Thema generell erst mal beschäftigen möchte. Ich bin in der DP-Suche eher auf „Emails verschicken“ gestoßen.

Das Ganze soll auch erst mal ganz simpel sein und im Falle einer neuen Email einfach eine MessageBox auf dem Bildschirm ausgeben.
Ich würde mich über Tutorials oder Stichworte für die Suche freuen. :hello:

Thanx.
DANNYBOY

Bowler 3. Sep 2004 10:06

Re: Implementierung: Neue Email bei GMX erhalten
 
Hi.

Ich würde dafür die IdPOP3-Komponente aus den Indys empfehlen. Ich habe das auch mal gemacht, zwar nicht speziell für GMX, aber es hat prima funktioniert.
Du kannst in dieser Komponente Deinen POP-Server und Deine Userdaten eintragen (wie in Deinem EMail-Client auch), und dann kannst Du dir die Liste der vorhandenen Mails holen.

Das kannst Du dann in einem bestimmten Intervall machen.Lokal würde ich eine Liste pflegen, in welcher die Mails mit ihren IDs eingetragen werden. Dann kannst Du immer schauen, ob diese Mail schon bekannt ist, oder nicht.

Gruß

StefanDP 3. Sep 2004 11:21

Re: Implementierung: Neue Email bei GMX erhalten
 
Ja genau! Nimm die IdPop3 Komponente

mit
Delphi-Quellcode:
  MailBoxSize := IdPop3.RetrieveMailBoxSize;
kannst du dir dann die Größe der Mails auf dem Server holen. Wenn sich dieser Wert nach x Minuten geändert hat, hast du ne neue Mail.
Du könntest den Wert jetzt z.b. in eine Ini speichern und dann immer vergleichen.

stefan

Dannyboy 3. Sep 2004 11:24

Re: Implementierung: Neue Email bei GMX erhalten
 
Hi StefanDP, hi Bowler,
ich kann zwar den Aufwand gar nicht abschätzen, aber ich würde das lieber selbst schreiben, d.h. ohne Indy.

Luckie 3. Sep 2004 11:26

Re: Implementierung: Neue Email bei GMX erhalten
 
Zitat:

Zitat von Dannyboy
ich kann zwar den Aufwand gar nicht abschätzen, aber ich würde das lieber selbst schreiben, d.h. ohne Indy.

Dann lies dir schon mal diese 18 seitige Dokument auf englisch durch: RFC POP3
Die dazu benötigten API Funktionen dürftest du hier finden: MSDB

Vjay 3. Sep 2004 11:27

Re: Implementierung: Neue Email bei GMX erhalten
 
Dann müsstest du das Pop3 - Protokoll implementieren und direkt mit einer TCP-Winsock Verbindung arbeiten (gehe mal davon aus dass du dann garkeine Komponenten nutzen willst).

Dazu käme die Namensauflösung etc, denke das wäre verschwendete Lebenszeit -> wozu wenn sich die Indy-Jungs bereits die Arbeit gemacht haben?

Aber deine Sache :) Dann viel Spass dabei.

Bowler 3. Sep 2004 11:28

Re: Implementierung: Neue Email bei GMX erhalten
 
Hm, also da wäre der Aufwand dann schon größer. Du müsstest direkt mit den Sockets arbeiten. Da der POP-Server, der die die gewünschten Infos zur Verfügung stellt, nur das POP-Protokoll versteht, müsstest du das selbst implementieren.

Du müsstest also mit Deine Socket eine Verbindung zum Server herstellen, und dann die im POP-Protokoll definierten Befehle senden, und die Ergebnisse verarbeiten.

Genau kenne ich das Protokoll nicht, also den genauen "Wortlaut" der Befehle. Müsstest Du mal nach dem entsprechenden RFC suchen, oder im Source der Indys nachgucken, welche Befehle benutzt werden müssen.

Soweit ich weiss, machen die Indys nichts anderes, als diese ganzen Schritte mit der Socket zu kapseln.

Gruß
Christian

Vjay 3. Sep 2004 11:40

Re: Implementierung: Neue Email bei GMX erhalten
 
3x die mehr oder weniger gleiche Antwort :tongue:

sakura 3. Sep 2004 11:45

Re: Implementierung: Neue Email bei GMX erhalten
 
Das nächste Problem ohne Indy ist, dass Du neben dem POP3 Protokoll auch den SMTP-Mail-Server ermitteln musst. Dass heißt, Du musst IP Adressen auflösen. (Protokoll: DNS)

...:cat:...

Vjay 3. Sep 2004 12:23

Re: Implementierung: Neue Email bei GMX erhalten
 
Nun haben wir schon 4 fast identische. Wozu braucht er den SMTP er will doch nicht Emails versenden sondern nur abfragen was auf dem Server liegt, oder sind mir beim Überfliegen fehler unterlaufen?

sakura 3. Sep 2004 12:34

Re: Implementierung: Neue Email bei GMX erhalten
 
Ersetze SMTP-Mail-Server mit POP3-Mail-Server :oops:

...:cat:...

fkerber 3. Sep 2004 12:37

Re: Implementierung: Neue Email bei GMX erhalten
 
Hi!

Da explizit nach GMX gefragt wurde:
Willst du den Weg über POP3 gehen, oder willst du es evtl. über das WebInterface mit einloggen und auslesen machen? (Auch wenn das unschöner wäre)


Ciao Frederic

Dannyboy 6. Sep 2004 09:12

Re: Implementierung: Neue Email bei GMX erhalten
 
Oh, da habe ich wohl den Aufwand ein wenig unterschätzt. :oops: :oops: :oops:
Also dann, her mit den Indys. :mrgreen: :mrgreen: :mrgreen:

endeffects 6. Sep 2004 10:58

Re: Implementierung: Neue Email bei GMX erhalten
 
hallo,
also einen einfachen smtp/pop3 client zu realisieren ist nicht wirklich schwer,
das protokoll ist relativ simpel aufgebaut und läßt sich mit telnet ohne
große probleme nachvollziehen, alles was du brauchst ist ein packetsniffer
der die kommunikation zwischen deinem emailclient (z.b. outlook) und dem
mailserver mitschneidet, damit hast du dann eine gute grundlage das ganze
mit delphi nachzubauen, allerdings mit wenig kompfor und relativ umständlich =)

quirks 6. Sep 2004 12:29

Re: Implementierung: Neue Email bei GMX erhalten
 
Das Problem mit RetrieveMailBoxSize ist, dass wenn du eine Nachricht löschst, das Programm auch anschlägt. Mein Vorschlag, guck mal in die Indy-Dok. da muss irgendwas von einer eindeutigen Mail-Id stehen (sowas wie Hash). Die dann einfach holen und in eine Stringlist oder DB schieben. Sobald dann eine Nummer auf dem Server ist, die noch nicht erfasst wurde, lässt du eine Message-Box aufploppen.

Alternativ kannst du auch alle Mails runterlden (ohne löschen), die Hash-Summe bilden (z.B. mit DEC) und dann wie oben. Ist aber eigentlich doppelt gemoppelt.

Gruß, quirks


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 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