Laden...

HTML-Email mit eingebetteten Bildern

Erstellt von sigoe vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.651 Views
S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren
HTML-Email mit eingebetteten Bildern

Hallo!

Ich habe jetzt schon ein bisschen was darüber im Forum gefunden aber ich bin noch nicht wirklich schlau daraus geworden!

Mein Problem ist folgendes:
Ich habe eine HTML-Datei die Bilder enthält! Diese soll dann per C# versendet werden!
Die in der Datei enthaltenen Bilder sollen im Anhang eingehängt sein und in der Nachricht!! Die Nachricht soll die Bilder eben aus dem Anhang "laden", damit ich diese nicht auf einem Webserver abspeichern muss!

Gibt es eine Möglichkeit mit der man dieses Problem lösen kann??

Die E-Mail soll eben dann wie eine fertige HTML-Seite aussehen (ein Newsletter eben 🙂)

Danke im Voraus

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

Hallo!

Kann mir wirklich niemand helfen???
Hab noch ein bisschen das Internet durchsucht und bin auf die MIME-Typen gestoßen!
Könnte dass nicht ein Schritt in die richtige Richtung sein??

Ich weiß nur nicht wie ich das hinbekomme, dass ich das in der HTML-Mail vorhande Bild aus dem Anhang lade!???

G
58 Beiträge seit 2007
vor 16 Jahren

Hallo sigoe,
Du könntest die Bilder direkt ins HTML einbetten (=>inline). Aber ich weiss nicht in wiefern das alle HTML-Mailclients anzeigen können.

Ein Beispiel hier: http://aktuell.de.selfhtml.org/artikel/grafik/inline-images/
Ich habe zwar schonmal davon gehört Bilder direkt aus dem Anhang zu laden, aber wenn man deine Mail in der Textansicht betrachtet hat man haufenweise Anhänge, die zu nix zu gebrauchen sind.

Greetz, Grolli

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

Hallo und danke für deine antwort!

Ich kenne diesen Link bereits nur leider funktioniert dass nicht so wie ich es möchte!!
Dass es zu Problemen führt, wenn die E-Mail in der Textansicht betrachtet wird ist mir klar, nur kann ich darauf verzichten, da diese E-Mails sowieso zu 95 % von Leuten empfangen werden, die die HTML Ansicht aktiviert haben!!

Kannst du mir eventuell eine Infoquelle geben wo ich Infos zum Laden der Bilder aus dem Anhang finde??? Ich habe google schon auf und ab gesucht nur bin ich leider nicht fündig geworden!! Hast du eventuell schon Erfahrungen damit?

Danke im Voraus

G
58 Beiträge seit 2007
vor 16 Jahren

Ich hab nie davon gehört. Deshalb hatte ich dich auch auf die Alternative hingewiesen - schade dass dir das nicht weiterhilft.

Grolli

998 Beiträge seit 2007
vor 16 Jahren

Hallo sigoe,

mime ist auf jeden Fall ein Schritt in die richtige Richtung, allerdings nur eine Teillösung deines Problems. Mit Mime kannst du in einer Entität mehrere "Dateien" speichern, quasi so:


MIME-Version: 1.0
Content-type: multipart/mixed; boundary="Seperator"

--Seperator
Content-type: text/plain; charset=utf-8

Der HTML-Quelltext deiner Mail

--Seperator
Content-type: image/gif; name="bild.gif"
 Content-Transfer-Encoding: base64
 R0lGODlhIgFGAOYAAABmmYCruf///zCIpa/S3QCZzECZtgCNvN/p7CB3lKDDzmCZrACGsxB2

Dafür gibt es aber fertige Biliotheken, damit ist dir der Teil der Arbeit schon mal erspart.

Evtl. werden Mail und Bilder in denselben Ordner gesteckt, hast du mal


<img src="bild.gif"\>

probiert?

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

Danke für deine Antwort!

Ich verstehe nur noch nicht ganz, wie ich diesen Text generieren lassen soll!??
Kann ich das alles in eine HTML Datei speichern (also MIME Sachen und meine "echte" HTML Mail) oder muss ich da was seperat lösen?

Mein Programm erzeugt einen HTML Newsletter und soll diesen eben auch versenden können, ohne dass die Bilder zum Beispiel von einem Webserver geladen werden müssen!!

998 Beiträge seit 2007
vor 16 Jahren

Wenn du über System.Net.Mail eine Mail verschickst wird er schon automatisch MIME-Emails generieren.

Bau dir halt mit dem System.Net.Mail Namespace eine Email mit Anhängen zusammen und schau, ob sie dem MIME-Typ entspricht.

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

Die EMail wird schon auf diese Art zusammengestellt, nur weis ich nicht, wie das mit den Bildern geht!!

998 Beiträge seit 2007
vor 16 Jahren

Bau dir doch in Outlook mal eine Mail mit inline-Bildern zusammen und schau wie die aussieht

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

ok das ganze sieht dann mal so aus


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Nachricht</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=541182312-30122007><FONT face=Arial 
size=2>Uberschrift!</FONT></SPAN></DIV>
<DIV><SPAN class=541182312-30122007><IMG alt="" hspace=0 
src="cid:541182312@30122007-1A2B" align=baseline 
border=0></SPAN></DIV></BODY></HTML>

Da bekomme ich automatisch eine cid beim IMG Tag!! Wie kann ich mir denn die selber machen, damit ich das Bild gleich beim Erstellen der HTML-Seite einfügen kann???

Meintest du das mit deinem letzten Post?

998 Beiträge seit 2007
vor 16 Jahren

jupp, das meinte ich! Nu schick dir die Mail mal selbst und speicher sie dann als Textdatei ab. Dann kannste gucken wo diese id im MIME-Part des Bildes auftaucht.

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

Die taucht leider nirgends auf und es wird auch das Bild nicht angezeigt!! Irgendwie verstehe ich das ganze nicht mehr so richtig 🙂

Hast du noch eine Ahnung was da falsch läuft??? Funktioniert sowas bei dir?

998 Beiträge seit 2007
vor 16 Jahren

Bastel dir ne Mail zusammen, schick sie an dich, dann öffne sie und speicher sie als irgendwas.msg ab.
Danach machste die Datei mit Notepad auf, da siehste die verschiedenen MIME's. Dann such den MIME des Bildes raus und guck ob da irgendwo die id auftaucht.

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

ok ich hoffe dass du das jetzt meinst!
Im <IMG>-Tag ist jetzt eine cid vorhanden! Meintest du diese?? Die hatte ich nämlich vorhin auch schon!!

998 Beiträge seit 2007
vor 16 Jahren

Genau und unter dem MIME-Part muss noch ein MIME-Part sein, der das Bild speichert. Finde den und schau nach, ob du da so eine id findest.

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

so siehts im moment aus: (EMail mit eingefügtem Bild und das Bild nochmals als Anhang versendet)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Nachricht</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY><B>Von:</B> Stefan [meinemail@gmx.at]<BR><B>Gesendet:</B> Sonntag, 
30. Dezember 2007 14:03<BR><B>An:</B> meinemail@gmx.at<BR><B>Betreff:</B> 
test<BR>
<DIV><SPAN class=846090213-30122007><FONT face=Arial 
size=2>test</FONT></SPAN></DIV>
<DIV><SPAN class=846090213-30122007><IMG alt="" hspace=0 
src="[COLOR]cid:846090213@30122007-1A39[/COLOR]" align=baseline 
border=0></SPAN></DIV></BODY></HTML>

Die Rote cid ist die von der ich gerade gesprochen habe! darunter finde ich nichts oder verstehe ich da mittlerweile schon alles falsch?

998 Beiträge seit 2007
vor 16 Jahren

So, hab mal eben mein Mailexpress ausgepackt, bei mir sieht die abgespeicherte Mail so aus:


...
Email-Header
...
------=_NextPart_001_000C_01C84AEE.5FF458A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.6000.16587" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2><IMG=20
src=3D"cid:2D545255B49448CABB72C80454D21834@David"></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>textext</FONT></DIV></BODY></HTML>

------=_NextPart_001_000C_01C84AEE.5FF458A0--

------=_NextPart_000_000B_01C84AEE.5FF458A0
Content-Type: image/jpeg;
	name="test.jpg"
Content-Transfer-Encoding: base64
Content-ID: <2D545255B49448CABB72C80454D21834@David>
...
Bilddaten
...

Alles klar?

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

ok danke dir!

Das heist jetzt ich muss irgendwie versuchen, dass mein Programm die Headers und Content-ID vor und nach der Nachricht einfügt!???

Wie soll denn das funktionieren?

998 Beiträge seit 2007
vor 16 Jahren

machs so:1.Bilder hinzufügen 1.Content-ID herausfinden 1.HTML-Mail erzeugen und gespeicherte ID's nutzen

Gruß David

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

ok nur weis ich jetzt nicht wie ich die Content-ID herausfinden kann, wenn ich das Mail noch nicht versendet habe!!????

998 Beiträge seit 2007
vor 16 Jahren

DIe ID wird ja nicht erst beim senden generiert, jeder MIME-Part wird (wenn auch optional) so eine ID haben. Schau wie du die rausbekommst und nutz sie.

S
sigoe Themenstarter:in
50 Beiträge seit 2006
vor 16 Jahren

ok dann werd ich mir das gleich mal anschaun!! Sehe ich dass richtig dass es da irgendwas bei der System.Net.Mail Klasse gibt???

998 Beiträge seit 2007
vor 16 Jahren

Keine Ahnung, musst du schauen. Wenn es die nicht gibt musst du auf andere Mail-Libs zurückgreifen, gab mal so ne estländische Mail-Lib die ziemlich gut war, Name weiss ich leider nicht mehr.