AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Emails mit Lazarus und Synapse abrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Emails mit Lazarus und Synapse abrufen

Ein Thema von Privateer3000 · begonnen am 6. Apr 2013 · letzter Beitrag vom 9. Apr 2013
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Emails mit Lazarus und Synapse abrufen

  Alt 6. Apr 2013, 13:01
Hallo liebe Gemeinde
Ich benötige mal etwas Hilfe bei dem Abrufen von Emails.
Mittels Synapse und diesem Beispiel:
Ararat Pop3send
kann ich Emails abrufen.
Ziel ist es zu wissen wie viele Emails im Postfach liegen und die Betreffs auslesen.
Was ich nicht verstehe, wie ermittle ich die Anzahl und das auch nur von ungelesenen.

Hoffe ihr könnt mir etwas auf die Sprünge helfen.
Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#2

AW: Emails mit Lazarus und Synapse abrufen

  Alt 6. Apr 2013, 13:37
steht doch in der Doku

http://de.wikipedia.org/wiki/Post_Of...ocol#Kommandos

http://synapse.ararat.cz/doc/help/po...TPOP3Send.html

http://www.ietf.org/rfc/rfc1939.txt

gelesen/ungelesen gibt es bei Pop meines Wissens nicht,das wird nur von den Clients/Webmailer nachträglich angeflanscht.(afaik)

Geändert von creed steiger ( 6. Apr 2013 um 13:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Emails mit Lazarus und Synapse abrufen

  Alt 6. Apr 2013, 14:23
Vielen Dank,
die Anzahl liest es nun korrekt aus.
Da ich keine Funktion gefunden habe die den Betreff gezielt
ausgibt muss das aus dem FullResult geholt werden.
Oder gibt es doch einen Trick?

Grüße
und Dank!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#4

AW: Emails mit Lazarus und Synapse abrufen

  Alt 6. Apr 2013, 14:40
top?
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Emails mit Lazarus und Synapse abrufen

  Alt 6. Apr 2013, 15:07
Das habe ich probiert.
Aber damit wird nicht gezielt eine Zeile herausgesucht.
Bei mir zeigt es trotzdem alle Zeilen an.
Delphi-Quellcode:
pop.AuthType:=POP3AuthAll;
    pop.login;
    pop.stat;
    msgc:=pop.StatCount;
    pop.list(0);
    pop.Retr(1);
    pop.Top(1,2);
    memo1.lines.Assign(pop.FullResult);
    msgcount.Caption:=IntToStr(msgc);
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Emails mit Lazarus und Synapse abrufen

  Alt 8. Apr 2013, 09:16
Im Moment hab ich das so gelöst:
Delphi-Quellcode:
pop.AuthType:=POP3AuthAll;
    pop.login;
    pop.stat;
    msgc:=pop.StatCount;
    pop.list(0);
    pop.Retr(1);
    //pop.Top(1,0);
    //memo1.lines.Assign(pop.FullResult);
    //msgid:=findmsg(pop.FullResult,'Subject:');
    msgtext.Caption:=pop.FullResult.Strings[19];
    msgcount.Caption:=IntToStr(msgc);
    //pop.Dele(1);
    pop.logout;
Im Index 19 befindet sich bei meinen Testmails das Subject.
Kann man sich darauf verlassen oder ändern sich die Header, je nach Provider?

Das auskommentierte 'findmsg' ist eine Funktion die in der Stinglist
den String 'Subject:' finden soll und den Index zurückliefert.
Funktioniert aber irgendwie nicht...

Delphi-Quellcode:
function findmsg(const AStrings: TStrings; const AText: String;
  CaseFlag: Boolean=False): Integer;
var
  I, C: Integer;
begin
  Result := AStrings.IndexOf(AText);
  if CaseFlag then
  begin
    C := Result;
    Result:=-1;
    for I:=C to AStrings.Count-1 do
      if AText=AStrings[I] then
      begin
        Result:=I;
        Break;
      end;
  end;
end;
Dann hätte ich auf jeden Fall den richtigen Index.
Kann mir jemand einen Tipp geben?
Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:52 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