PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bilder in HTML-eMails per Content ID anzeigen


Pool4Sky
23.04.2004, 14:06
Hi @ all,
ich programmiere derzeit einen guten EmailClienten und stecke gerade fest.
Mein Problem ist, dass in einigen HTML-eMails beim src-Attribut des img-tags als quelle eine cid:<blabla> angegeben wird, statt einer URL. Ich habe schon rausgefunden, dass das zu einer eingebetteten Ressource (hier ein Bild) gehört und es als inline Attachment mitgeschickt wird.
Zu meinem Problem: Wie interpretiert der Browser die "cid:<..>", quasi wo speichert er das Bild ab um es später aufzurufen und wie ruft er es auf?
Bei einer Pfadangabe (ob relativ oder fest) ist ja klar wo er das Bild herholt aber wie funktioniert das hier? Gibt es irgendwo ein Beispiel oder Lektüre oder wer weiß wie das funzt? Bitte um Hilfe, da ich langsam net mehr weiter weiß.

greetings Pool4Sky


Scavi
23.04.2004, 16:00
Ich glaube die Bilder werden bei Aufruf dynamisch vom Server erzeugt und zum Clienten gestreamt, sie existieren faktisch nicht als Datei, daher ist es wahrscheinlich nur über ein GET möglich diese Bilder anzuzeigen.

Pool4Sky
23.04.2004, 17:45
Sorry, aber ich glaube du hast mich da etwas falsch verstanden.
Die eMail wird komplett gedownloadet, sprich mit Header anschließenden Body und den eventuellen Attachments. Folglich auch mit den fraglichen Bildern als inline-Attachment. Bei HTML werden die Bilder doch mit dem <img scr="Pfadangabe">-tag eingebunden. Das weisst normalerweise auf eine Pfadangabe und diese zeigt bei HTML-eMails auf irgendein Webspace. Doch mit der Einbindung der Bilder in HTML-eMails werden die Bilder mit geschickt, als Attachment.
Durch den HTML-Befehl: <img src="cid:<blabla>" (cid -> Content ID) werden die Bilder irgendwie dargestellt. Meine Frage ist das WIE? Wie werden die Bilder dargestellt. In welchem Verzeichnis werden sie abgespeichert (temporär oder nicht). Wie funzt dieser Mechanismus der die Bilder als "eingebettete Ressourcen" anzeigen lässt? Langsam weiß ich echt net mehr weiter.

greetings Pool4Sky

torrud
27.04.2004, 11:23
Also, da ich denke mal so. Die Mail die du bekommen hast ist eine Multipart-Mail. Da hast du wie gesagt eine Objekt-Id und weiter unten kommt die Datei komplett inline mit. Du erzeugst einfach eine temporäre Datei, in die du die Bilddaten schreibst und ersetzt die Objekt-ID durch einen Link zu deiner temporären Datei. Damit kann der Browser die darstellen und du bist alle Probleme los.
Schau dir mal System.CodeDom.Compiler.TempFileCollection das erleichtert die Handhabung von temporärenn dateien.