Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi [Indy] Bild bei einer HTML-Email anzeigen lassen (https://www.delphipraxis.net/35289-%5Bindy%5D-bild-bei-einer-html-email-anzeigen-lassen.html)

Sascha L 4. Dez 2004 23:22


[Indy] Bild bei einer HTML-Email anzeigen lassen
 
Hallo,

ich nutze Indy 9 und möchte eine HTML-Email abrufen, in der ein Bild ist (nicht im Anhang als Datei, sondern direkt in der Mail).

Die Mail wird in eine Datenbank gespeichert und mithilfe der TWebBrowser-Komponente kann ich mir die Mail angucken.

Das Bild wird ja dennoch als Anhang der Mail angefügt und mithilfe der Content-ID an die entsprechende Stelle in der Mail gesetzt.

Wenn ich das Bild nun in die DB lade (Blob-Feld), wie mach ich dem TWebBrowser klar, dass er den Anhang (das Bild) anzeigen soll?

Bei mir ist nämlich immer nur (logischerweise) ein weißer Kasten mit einem roten X.

Viele Grüße
Sascha

Sascha L 6. Dez 2004 14:09

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
weiß keiner dazu was?

Ich bräuchte die Lösung sehr dringend :(

TimonWorld 6. Dez 2004 18:33

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
Zitat:

Zitat von Sascha L
nicht im Anhang als Datei, sondern direkt in der Mail

also direkt in der Mail heißt doch dann im Anhang!?! Oder meinst du irgendwie im quellcode - das geht glaub' ich garnicht!!!

ich könnte bilder bei outlook nur so einbinden:

- Das bild verweist auf eine webseite

- das Bild wird zum anhang verlinkt

Sascha L 6. Dez 2004 20:33

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
Ja das habe ich ja gesagt. Im Anhang befindet sich ja das Bild. Das wird mithilfe einer Content-ID in die Mail verlinkt. Aber wenn ich nun den Anhang in ein Feld in einer DB speichere und den Quellcode der Mail in ein Feld speichere und ich nun die Mail mithilfe des WebBrowsers anzeigen lassen möchte, wie mach ich ihm klar, dass sich das Bild in dem Feld XYZ befindet?

TimonWorld 7. Dez 2004 18:52

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
ich glaub' das geht nicht!!! dass hat nämlich jetzt nichts mehr mit delphi zu tun, außer das der anhang vorher in ein verzeichnis expotiert wird und im WebBrowser ersetzt du einfach diese zeile!!!

> Beispiel:

Du bekommst eine E-Mail.

Mit einem Bild (urlaubSchweiz04.jpg).

Dein Programm speichert dies im Datensatz XYZ.

Der Nutzer deines Programmes will die E-Mail lesen und klickt sie an.

Dein Programm speichert das Bild aus dem Datensatz XYZ nach 'c:\temp\urlaubSchweiz04.jpg'

Dein Programm sucht im Quellcode (HTML), ob irgendwo steht: 'urlaubSchweiz04.jpg'

Wenn ja, wird dies ersetzt durch: 'c:\temp\urlaubSchweiz04.jpg'

Sascha L 8. Dez 2004 14:03

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
hm.. daran hab ich auch schon gedacht, nur wäre es halt sehr umständlich bzw. bei mehreren bildern dauert es lange, bis die Mail geöffnet wird.

Wie macht Outlook es denn? Da wird ja auch die TWebBrowser-Komponente verwendet. Ich habe dort mal testweise eine Mail geöffnet, aber ich habe auf meinem PC nirgendswo das Bild als temporäre Datei gefunden.

Chris1986 8. Dez 2004 14:26

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
[Edit: Ich bin sooo blöd, ich hab TimonWorlds's Post übersehen :oops: ]

Hi Sascha,
geh doch einfach durch den HTML-QuellCode und suche diese ID. Die ID kannst du dann durch einen Pfad ersetzen, der auf eine temporäre Datei des Bildes zeigt.
Also, Bild aus der DB holen und in einem Temp-Ordner zwischenspeichern, Quelltext anpassen, Mail anzeigen und anschließend den Temp-Ordner wieder leeren

MfG
Christian

Sascha L 8. Dez 2004 20:53

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
Ja, aber wenn man nun eine Mail mit ein paar Bildern hat, dannn dauert es doch total lange, die zu öffnen oder nicht? Erst die Mail durchsuchen, die CIDs durch den Pfad austauschen, die Bilder in einen Temp-Ordner zwischen speichern...

Gruß
Sascha

Chris1986 8. Dez 2004 21:51

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
Also,
Stringreplace etc geht sehr schnell. Eine Mail ist ja meistens nicht länger als eine DIN A4 Seite. Das ist kein Problem. Das Problem ist das Laden der Bilder aus der Datenbank. Aber ob du das Bild jetzt in einen Blobstream lädst und es dann visualisierts oder ob du den Stream vorher kurz abspeicherst ist eingentlich egal, das macht keinen messbaren Zeitunterschied aus.

MfG
Christian

Sascha L 9. Dez 2004 07:45

Re: [Indy] Bild bei einer HTML-Email anzeigen lassen
 
OK, Danke, dann werde ich das mal versuchen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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