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
Seite 1 von 2  1 2      
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, 14: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, 14: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 14: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, 15: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, 15: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, 16: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, 10: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#7

AW: Emails mit Lazarus und Synapse abrufen

  Alt 8. Apr 2013, 10:25
Bist Du sicher, dass da nur "Subject:" in der Zeile steht? Oder ist es eher so, dass sie mit "Subject:" beginnt? Im letzteren Fall passen die Vergleiche nicht (IIRC prüft IndexOf auf Gleichheit, weiter unten tust Du es selbst auch).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

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

AW: Emails mit Lazarus und Synapse abrufen

  Alt 8. Apr 2013, 11:23
Danke DeddyH
daran hatte ich nicht gedacht.
also müsste ein Platzhalter dafür sorgen das die Zeile gefunden wird?!

Grüße und Danke!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#9

AW: Emails mit Lazarus und Synapse abrufen

  Alt 8. Apr 2013, 11:29
Ich würde es ungefähr so versuchen (ungetestet):
Delphi-Quellcode:
function findmsg(const AStrings: TStrings; const AText: String;
  CaseFlag: Boolean=False): Integer;
var
  i: integer;
begin
  Result := -1;
  for i := 0 to AStrings.Count - 1 do
    if (not CaseFlag and AnsiStartsText(AText, AStrings[i]))
      or AnsiStartsStr(AText, AStrings[i]) then
      begin
        Result := i;
        break;
      end;
end;
Die AnsiStartsXXX-Funktionen sind in Delphi in der Unit StrUtils zu finden, ob es in Lazarus Entsprechungen gibt, weiß ich leider nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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
 
#10

AW: Emails mit Lazarus und Synapse abrufen

  Alt 8. Apr 2013, 12:07
Gibt es einen Grund, warum du nicht TMimeMess benutzt?
Da kannst du dir den ganzen Zirkus sparen.

(Gesamten) Header holen
Bei TMimeMess in Lines packen
TMimeMess.DecodeMessage
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
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 02:08 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