Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi mails kontrollieren (https://www.delphipraxis.net/30055-mails-kontrollieren.html)

SirThornberry 19. Sep 2004 10:49

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

glkgereon 19. Sep 2004 10:52

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?

SirThornberry 19. Sep 2004 10:59

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:

Retieves the unique-id listing for one or all messages in the mailbox.

function UIDL(const ADest: TStrings; const AMsgNum: Integer): Boolean;

Parameters

const ADest: TStrings

Container for UID values in the listing.

const AMsgNum: Integer = -1

The message number desired, or all messages when the value is -1. Default value is -1.

Returns

Boolean - True on success.

Description

UIDL is a Boolean function used to retrieve the unique-id listing for one or all messages in the POP3 mailbox. When AMsgNum is specified, UIDL will request the UIDL for the specified message number. Otherwise, all message numbers in the mailbox are requested from the POP3 server.

UIDL calls SendCmd with the POP3 UIDL command and the optional message number. When the response code from SendCmd is wsOk, the response values are stored in Dest. Value from the POP3 UIDL command consist of the message number folowed by a space character and the unique-id for the message. The unique-id of a message is an arbitrary server-determined string, consisting of one to 70 characters in the range 0x21 to 0x7E, and uniquely identifies a message within a POP3 mailbox. Messages marked as deleted are not included in a UIDL listing.

glkgereon 19. Sep 2004 11:02

Re: mails kontrollieren
 
supi

aber was wenn ich die abfrage, ne mail lösche, ne neue kommt, kann die dieselbe id haben?

Sharky 19. Sep 2004 11:04

Re: mails kontrollieren
 
Zitat:

Zitat von glkbkk
supi

aber was wenn ich die abfrage, ne mail lösche, ne neue kommt, kann die dieselbe id haben?

Eigentlich sollen die MessageIDs weltweit eindeutig sein.

SirThornberry 19. Sep 2004 11:04

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]

jfheins 19. Sep 2004 11:45

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:
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 !

";
}
Wie zu sehen ist, gibt es hier eine Variabe mit Wert "SA_UNSEEN", die bewirkt, dass die ungelesenen E-Mails herausgefiltert werden.

glkgereon 19. Sep 2004 11:49

Re: mails kontrollieren
 
toll, da ich kein php kann hilftmir das so ungefähr 0 weiter...

wie heissen denn die befehle in delphi?

jfheins 19. Sep 2004 12:08

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 Delphi-Referenz durchsuchenimap_status oder ähnliches.
(Wahrscheinlich eher IdIMAP4.status () oder so ...)
Auf jeden Fall was mit Status.

glkgereon 19. Sep 2004 12:11

Re: mails kontrollieren
 
aba ich mach das doch per pop3, und nicht per imap.... :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Seite 2 von 3     12 3      

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