![]() |
pop3 timestamp
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 |
AW: pop3 timestamp
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. |
AW: pop3 timestamp
Zitat:
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 |
AW: pop3 timestamp
Danke für die Antwort.
blicke trotzdem nicht recht durch! in synapse steht
Delphi-Quellcode:
Es müßte doch dann bei einer Mail, die ich noch nicht "abgeholt" habe, ein false kommen??? Oder???
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. Bei mir kommt immer true. Beispiel: Meine Tests hab ich immer mit den ersten 12 Mails gemacht.
Delphi-Quellcode:
Wenn ich jetzt beim nächsten Test schreibe, also vor die retr-Schleife:
...
for i:=1 to 12 do begin pop.retr(i); pop.RetrStream(i, retrStream); retrStream.Position := 0; ...
Delphi-Quellcode:
Dann müßte doch bis zur 12. Mail eine "1" in showmessage stehen und dann in den nächsten 3 Mails eine "0".
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; Wie gesagt, ich glaub, ich blick da nicht recht durch:oops: Vielleicht noch eine genauerer Hinweis, wie's geht??? Danke. Josef |
AW: pop3 timestamp
Bei jeder Methode bekommst du als Result
Delphi-Quellcode:
, wenn die Methode erfolgreich ausgeführt wurde.
true
Bei einem
Delphi-Quellcode:
kannst du die Verarbeitung abbrechen.
false
Delphi-Quellcode:
if pop.Uidl( MailIdx ) then
begin pop.FullResult ... // da findest du jetzt die MailID end; |
AW: pop3 timestamp
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:
Bin schön langsam am Verzweifeln. Diese blöden Mails.
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 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 |
AW: pop3 timestamp
Ich meine immer noch die ID, die du über UIDL auslesen kannst :roll:
Also nix mit Header ... poste doch einfach mal
Delphi-Quellcode:
den Inhalt der MessageBox (oder die Info, dass keine MessageBox erscheint)
if pop.Uidl(0) then
ShowMessage( pop.FullResult.Text ); // <- da das da hier wo |
AW: pop3 timestamp
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 |
AW: pop3 timestamp
Nun ja, wenn du dir den Kommentar zu der Funktion anschaust
Delphi-Quellcode:
Oder was denkst du ist mit
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. Zitat:
Ein Blick auf das POP3 Protokoll hilft auch ![]() |
AW: pop3 timestamp
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 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