Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Schnelle Einführung in Indy (https://www.delphipraxis.net/200927-schnelle-einfuehrung-indy.html)

hoika 12. Jul 2019 09:03

AW: Schnelle Einführung in Indy
 
Hallo,
den Thread habe ich wohl übersehen ;)

Also drehen wir es um.

Probier POP3 mit FetchHeaders.
Dann wird nicht die komplette E-Mail heruntergeladen.

Ich weiss nicht, ob das beim IMAP auch geht.

FediDelPr 29. Okt 2019 21:35

AW: Schnelle Einführung in Indy
 
Ich habe den Eindruck, dass Indy nicht so viel verwendet wird.
Gibt es gute Alternativen dazu ?
Wie gesagt möchte ich zurzeit in erster Linie IMAP (Version 4) verwenden.

TurboMagic 30. Okt 2019 06:34

AW: Schnelle Einführung in Indy
 
Eine open source Alternative zu Indy ist ICS (www.overbyte.eu).
Diese arbeitet meist komplett asynchron, blockiert also dein
Programm nicht sondern nutzt Events.

Ob die auch IMAP oder nur POP3 kann weiß ich gerade jedoch nicht
und die Dokumentation ist leider sehr unvollständig, dafür sind
da jede Menge Beispielprogramme mit dabei.

Funktioniert für Windows und ich glaube auch MacOS X, aber nicht
für die mobilen Plattformen. Du klangst aber auch nicht so, als
ob du die bräuchtest.

ICS gibt's in 2 Varianten (VCL only und VCL/FMX) auch in GetIt.
Im englisch sprachigen Delphi-Praxis Forum gibt es seit ein paar
Monaten auch ein spezielles Support Forum für ICS, da die vorher
genutzte Mailingliste mehrfach Ärger bereitet hatte.

Grüße
TurboMagic

FediDelPr 2. Nov 2019 23:56

AW: Schnelle Einführung in Indy
 
Danke TurboMagic,

welche Erfahrungen hast du mit ICS gemacht bezüglich
Zuverlässigkeit, Funktionsumfang ..? Die unvollständige
Dokumentation hast du ja bereits erwähnt.
Kannst du vielleicht sogar einen Vergleich mit INDY ziehen ?

Vorderhand bleibe ich mal bei INDY, denn mittlerweile, nach
viel Zeitaufwand, laufen bei mir die wichtigsten Funktionen:

Ich kann e-mails auf dem e-mail Server selektieren (Suchfunktion)
und diese dann im EML-Format speichern oder auf einen andern
e-mail Account kopieren.

Die wichtigsten Indy-Prozeduren sind:

IMAPClientSrc.SelectMailBox('INBOX')
SetLength(SearchInfo, 1);
SearchInfo[0].SearchKey := skFrom;
SearchInfo[0].Text := searchText;
IMAPClientSrc.SearchMailBox(SearchInfo)

FOR i := 0 TO High(IMAPClientSrc.MailBox.SearchResult) DO
BEGIN
MsgObject := TIdMessage.Create(nil);
IMAPClientSrc.Retrieve(IMAPClientSrc.MailBox.Searc hResult[i],
MsgObject)
count := msgObject.FromList.Count;

IF count = 1 THEN
BEGIN
s := msgObject.FromList.Items[0].Address;
ShowMessage(s);
END;

(* Message (e-mail) auf anderen e-mail account kopieren *)
res := IMAPClientDst.AppendMsg( 'INBOX', msgObject, msgObject.Headers, [] );

MsgObject.Free;
END;

Für Source und Destination wird je eine eigene Instanz
von TIMAPClient verwendet.
Die Absenderadresse (FROM) des Original-emails wird angezeigt.
Das ist kein lauffertiger Code, nur die wesentlichen Methoden.

TurboMagic 3. Nov 2019 10:30

AW: Schnelle Einführung in Indy
 
Naja, mit ICS habe ich noch keinen E-Mail Empfang realisiert, bisher nur Versand via SMTP.
Daher kann ich dazu nicht viel sagen.

Wenn man bestimmte Prinzipien kapiert hat ist ICS recht leistungsfähig und die Mailingliste
war auch oft hilfreich. Ich vermute, dass das neue Forum auf der EN Delphipraxis ähnlich
hilfreich ist.

Durch die durchgängig event basierte Umsetzung braucht man in ICS selten einen Thread.

Grüße
TurboMagic

MichaMD 11. Apr 2021 12:41

AW: Schnelle Einführung in Indy
 
Zitat:

Zitat von FediDelPr (Beitrag 1434160)
Das Indy-Manual ist über 3000 Seiten lang.
Habe keine Lust mich da durch die Details zu lesen.

Ich schon!!! ^^
Allerdings finde ich das Manual nicht, da die meisten Links diesbezüglich tot sind.
Hat jemand einen funktionierenden Link?
Ich möchte gerne zum allerersten mal mit Komponenten überhaupt arbeiten umd mir eine Email funktionalität zu schreiben, aber die meisten Tutorials die ich gefunden habe gehen eher auf die Verwendung mit Vorwissen ein und nicht wirklich von 0 an.

mmw 11. Apr 2021 12:57

AW: Schnelle Einführung in Indy
 
http://mediaserver.fh-wedel.de/publi...downloads.html

jsheyer 11. Apr 2021 14:01

AW: Schnelle Einführung in Indy
 
Man kann im ersten Schritt nur den/die Header runterladen, das geht auch schnell, so mach ich das und dann speichere ich mir diesen Lokal und erst wenn man die Mail lesen möchte dann rufe ich diese mit UIDRetrieve der TIdImap Komponente ab.
Was mir aber noch nicht gelungen ist, und das finde ich auch spannend, wie man den Mail Text mit den Namen der Attachments bekommt ohne die Attachments selber downzuladen.
Ich weiß das man mit den MessageParts die einzelnen Parts laden kann.
Das wäre von der Performance sehr spannend, denn wenn sich mehrere MB an Attachments an der Mail befinden dauert das.
Selbst wenn was ich auch schon versucht habe mit der TidMessage diese als File Lokal zu speichern und wieder zu laden, dauert das laden locker 1-2 Sekunden von einer SSD.
Aber vielleicht habt ihr noch bessere Ideen (hoofe ich :-) )

mmw 11. Apr 2021 14:26

AW: Schnelle Einführung in Indy
 
hallo,

vielleicht so

Delphi-Quellcode:
 for j := 0 to Pred(mymessage.MessageParts.count) do

      if (mymessage.MessageParts.Items[j] is TIdAttachment) then
          ListBox1.Items.Add(TIdAttachment(mymessage.MessageParts.Items[j]).FileName);
Gruß

jsheyer 11. Apr 2021 14:33

AW: Schnelle Einführung in Indy
 
Ja das geht so klar, aber dann sind die Attachments doch schon bereits runtergeladen und genau das soll doch für eine hohe Performance vermieden werden.


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

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