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
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!???
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
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
Ich hab nie davon gehört. Deshalb hatte ich dich auch auf die Alternative hingewiesen - schade dass dir das nicht weiterhilft.
Grolli
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?
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!!
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.
Die EMail wird schon auf diese Art zusammengestellt, nur weis ich nicht, wie das mit den Bildern geht!!
Bau dir doch in Outlook mal eine Mail mit inline-Bildern zusammen und schau wie die aussieht
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?
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.
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?
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.
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!!
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.
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?
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?
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?
machs so:1.Bilder hinzufügen 1.Content-ID herausfinden 1.HTML-Mail erzeugen und gespeicherte ID's nutzen
Gruß David
ok nur weis ich jetzt nicht wie ich die Content-ID herausfinden kann, wenn ich das Mail noch nicht versendet habe!!????
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.
ok dann werd ich mir das gleich mal anschaun!! Sehe ich dass richtig dass es da irgendwas bei der System.Net.Mail Klasse gibt???
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.