AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

pop3 timestamp

Ein Thema von josefkoller · begonnen am 12. Feb 2014 · letzter Beitrag vom 13. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#1

pop3 timestamp

  Alt 12. Feb 2014, 14:08
Hallo,

ich komme aus dem Fragen nicht mehr raus:

in pop3send von synapse ist ein Property timestamp definiert.

Da dachte ich, das nehme ich, um zu wissen, ab wann ich beim erneuten Abholen von Mails weiß, wann die letzten Mails geholt wurden.

Nun steht bei diesem Property auch, daß nicht alle Server timestamp unterstützen.

Natürlich macht mein Server auch kein timestamp.

Wie "markiert" ihr die letzte abgeholte Mail, um einen Wiederaufsatzpunkt zu haben?

Danke

Josef
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#2

AW: pop3 timestamp

  Alt 12. Feb 2014, 14:46
Nahezu alle Mailprogramme merken sich die "ID" der Mails, welche sie schon haben.

Laden dann alle Header, vergleichen die IDs und laden dann die Bodys der fehlenden Mails.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: pop3 timestamp

  Alt 12. Feb 2014, 15:17
Nahezu alle Mailprogramme merken sich die "ID" der Mails, welche sie schon haben.

Laden dann alle Header, vergleichen die IDs und laden dann die Bodys der fehlenden Mails.
Besser geht es mit dem POP3 Kommando UIDL n, dann bekommt man die eindeutige Mail-ID unter der diese Mail dem POP3-Server bekannt ist. Zudem erspart man sich das Laden der Header und eine Mail-ID ist im Header auch nicht zwangsläufig zu finden.

Die korrekte Abfolge wäre also
Code:
LIST
// Ergibt die Anzahl der Mails und die gesamte Größe im Postfach
// Jetzt ein Loop über alle Mails
UIDL n
// Ist diese Mail schon geladen?
LIST n
// Ist diese Mail zu groß zum laden?
TOP n
// Spricht irgendetwas dagegen, diese Mail zu laden (Header auswerten)?
RETR n
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (12. Feb 2014 um 15:24 Uhr)
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#4

AW: pop3 timestamp

  Alt 12. Feb 2014, 16:14
Danke für die Antwort.

blicke trotzdem nicht recht durch!

in synapse steht

Delphi-Quellcode:
function Uidl(Value: Integer): Boolean;
Send UIDL command. If Value is 0, UIDL is for all messages. After successful operation is listing in FullResult. If all OK, result is True.
Es müßte doch dann bei einer Mail, die ich noch nicht "abgeholt" habe, ein false kommen??? Oder???
Bei mir kommt immer true.

Beispiel:

Meine Tests hab ich immer mit den ersten 12 Mails gemacht.

Delphi-Quellcode:
...
for i:=1 to 12 do begin
pop.retr(i);
pop.RetrStream(i, retrStream);
      retrStream.Position := 0;
...
Wenn ich jetzt beim nächsten Test schreibe, also vor die retr-Schleife:

Delphi-Quellcode:
    for j:=1 to 15 do begin
    uiresult:=pop.Uidl(j);
      if pop.Uidl(j)then
       uiresult1:=1 else uiresult1:=0;
      showmessage(inttostr(uiresult1));
     end;
Dann müßte doch bis zur 12. Mail eine "1" in showmessage stehen und dann in den nächsten 3 Mails eine "0".

Wie gesagt, ich glaub, ich blick da nicht recht durch

Vielleicht noch eine genauerer Hinweis, wie's geht???

Danke.

Josef
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: pop3 timestamp

  Alt 12. Feb 2014, 17:34
Bei jeder Methode bekommst du als Result true , wenn die Methode erfolgreich ausgeführt wurde.

Bei einem false kannst du die Verarbeitung abbrechen.

Delphi-Quellcode:
if pop.Uidl( MailIdx ) then
begin
  pop.FullResult ... // da findest du jetzt die MailID
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#6

AW: pop3 timestamp

  Alt 12. Feb 2014, 18:14
Hallo,

ich fürchte, irgendwann falle ich euch auf die Nerven.

ich schreib mal zwei Headers hier in den Post:

Ich hoffe, du meinst mit MailID nicht die Message-ID (da gibt es Mails, die haben keine).

Also welche ID meinst Du:

In der GMail Variante ist eine Message-ID, in der anderen Variante keine.
In der einen ist eine Zeichenfolge: "id EBFC110537A3".

Also, was soll ich als Identifikation hernehmen?

Ein Header aus GMail:
Delphi-Quellcode:
MIME-Version: 1.0
Received: by 10.14.xxx.133 with HTTP; Wed, 12 Feb 2014 09:52:55 -0800 (PST)
In-Reply-To: <CAEN1bAi8R1TC6_3WUjWFxeyFJuCMniS7zv8-Ad8y1_pj5Ra9RQ@mail.gmail.com>
References: <0-13541249275486067004-6679340351161396899-thtmlviewer=googlecode.com@googlecode.com>
   <1-13541249275486067004-6679340351161396899-thtmlviewer=googlecode.com@googlecode.com>
   <2-13541249275486067004-6679340351161396899-thtmlviewer=googlecode.com@googlecode.com>
   <CAEN1bAi8R1TC6_3WUjWFxeyFJuCMniS7zv8-Ad8y1_pj5Ra9RQ@mail.gmail.com>
Date: Wed, 12 Feb 2014 18:52:55 +0100
Delivered-To: infojosefkoller@gmail.com
Message-ID: <CAEN1bAj12V-HKCNxog1MmTLK5s_EgyHeUXj6-xG_Xc+5-3AyRw@mail.gmail.com>
Subject: Fwd: Issue 332 in thtmlviewer: htmlviewer kills other components
From: Josef Koller <infojosefkoller@gmail.com>
To: info@josefkoller.de
Content-Type: multipart/alternative; boundary=e0cb4e6ff4c917a84e04f2393e9b

--e0cb4e6ff4c917a84e04f2393e9b
Content-Type: text/plain; charset=UTF-8

Ein Header mit one.com:
Delphi-Quellcode:
Return-Path: <info@josefkoller.de>
Delivered-To: info@josefkoller.de
Received: from mx-r.one.com (mx-r.one.com [91.198.169.249])
   by mail123.local (Postfix) with ESMTP id C826910537A3
   
   
Received: from mx-q.one.com (mx-q.one.com [91.198.169.248])
   by mail123.local (Postfix) with ESMTP id EBFC110537A3
   
   
   for <info@josefkoller.de>; Mon, 3 Feb 2014 02:57:08 +0100 (CET)
X-Virus-Scanned: by one.com
X-Amavis-Alert: BAD HEADER SECTION, Non-encoded 8-bit data (char C3 hex):
   Subject: Eingangsbest\303\244tigung Ihrer B[...]
X-Greylist: whitelisted by SQLgrey-1.8.0-rc2
Received: from mail-out1.b-one.net (mail-out1.one.com [91.198.169.18])
   by mx-r.one.com (Postfix) with ESMTP id 6112320C9C09A
   for <info@josefkoller.de>; Sun, 2 Feb 2014 14:10:35 +0000 (UTC)
Received: from localhost.localdomain (web199.local.one.com [10.246.64.199])
   by mail-out1.b-one.net (Postfix) with ESMTP id 50F0A80030397;
   Sun, 2 Feb 2014 15:10:35 +0100 (CET)
Received: from 93.222.184.106 by www.josefkoller.de via /mailenbestellungenbienen.php with HTTP; So, 02 Feb 2014 14:10:35 +0000
To: koexxxxx@web.de
Subject: Eingangsbestätigung Ihrer Bestellung
X-PHP-Originating-Script: 1275562:mailenbestellungenbienen.php
MIME-Version: 1.0
Content-type: text/html; charset=UTF-8
From: info@josefkoller.de
Cc: info@josefkoller.de
X-Antivirus: AVG for E-mail 2014.0.4259 [3697/7085]
X-AVG-ID: ID3026F6BF-5D8FAB25
Bin schön langsam am Verzweifeln. Diese blöden Mails.

In dem zweiten Header fehlt auch das Date:

Nur in folgender Zeile findet man ein brauchbares Datum:

Sun, 2 Feb 2014 15:10:35 +0100 (CET)

Nur auch hier: wie auslesen?

Danke nochmal.

Josef
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: pop3 timestamp

  Alt 12. Feb 2014, 19:01
Ich meine immer noch die ID, die du über UIDL auslesen kannst

Also nix mit Header ... poste doch einfach mal
Delphi-Quellcode:
if pop.Uidl(0) then
  ShowMessage( pop.FullResult.Text ); // <- da das da hier wo
den Inhalt der MessageBox (oder die Info, dass keine MessageBox erscheint)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#8

AW: pop3 timestamp

  Alt 12. Feb 2014, 20:55
Bist ein Hund,

wie lautet Dein Spruch:
Kaum macht man's richtig - schon funktioniert's.

Ich wär nie im Leben drauf gekommen, daß mit

pop.FullResult.Text

sowohl der Text als auch die ID abgerufen werden können.

Weiß gar nicht, wie ich dir danken soll.

Jetzt hab ich nur noch mein Date Problem mitten im Headertext, dann paßt alles.

Ciao

Josef
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: pop3 timestamp

  Alt 12. Feb 2014, 21:00
Nun ja, wenn du dir den Kommentar zu der Funktion anschaust
Delphi-Quellcode:
function Uidl(Value: Integer): Boolean;
// Send UIDL command.
// If Value is 0, UIDL is for all messages.
// After successful operation is listing in FullResult.
// If all OK, result is True.
Oder was denkst du ist mit
Zitat:
After successful operation is listing in FullResult.
gemeint?

Ein Blick auf das POP3 Protokoll hilft auch http://de.wikipedia.org/wiki/Post_Office_Protocol
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#10

AW: pop3 timestamp

  Alt 13. Feb 2014, 09:53
Hallo,

jetzt bin ich doch schon wieder da:

Bevor ich anfange, mich wieder zu verrennen, frag ich lieber gleich:

Es geht um das Abholen der neuesten Nachrichten:

Die letzte MailID (mit UIDL ermittelt) lautet z. b.
5 UID8717-1300474375

Bei mir wird die erste Zahl bei den Mails hochgezählt und die UID. Der hintere Teil nach dem Bindestrich ist immer gleich.

Nun könnt ich ja beim Abholen diese erste Zahl und die UID prüfen und ab da abholen.

Nur:
Was passiert, wenn von einem anderen Rechner diese Mail gelöscht wurde und weitere Mails dazukamen?

soweit ich das sehe, wird einfach nach dem Löschen diese 5 UID 8717 wieder mit einer neuen Mail gekennzeichnet. Ich nehm das mal so an, weil ich in meinen Mails keine Lücken in der Numerierung finde.

Man müßte also noch was anderes aus dem Header (Date oder Message-ID) in die Prüfung mit einbeziehen. Da aber Message-ID und Date unsichere Kandidaten sind, scheint mir das auch nicht der richtige Weg zu sein.

Deswegen meine Frage:

Wie vorgehen??

Danke.

Josef
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz