2015-07-14 9 views
6

Ich benutze MailKit/MimeKit 1.2.7 (neueste NuGet-Version).MimeKit: Wie Bilder einbetten?

Ich habe versucht, ein Bild in den HTML-Text meiner E-Mail einzubetten, indem ich dem Beispiel aus der API documentation (Abschnitt "Verwenden eines BodyBuilder").

Meine aktuellen Code sieht wie folgt aus:

var builder = new BodyBuilder(); 

builder.HtmlBody = @"<p>Hey!</p><img src=""Image.png"">"; 

var pathImage = Path.Combine(Misc.GetPathOfExecutingAssembly(), "Image.png"); 
builder.LinkedResources.Add(pathLogoFile); 
message.Body = builder.ToMessageBody(); 

ich diese E-Mail senden können, und in der Tat das Bild an die E-Mail angehängt ist. Aber es ist nicht eingebettet.

Fehle ich etwas? Oder ist diese Apple Mail schuld (das ist der E-Mail-Client, den ich für den Empfang von E-Mails verwende)?

Ich bin dankbar für jede Idee (und vielen Dank an Jeffrey Stedfast für die Bereitstellung eines so tollen Toolset !!).

Ingmar

Antwort

13

versuchen, etwas ein bisschen mehr wie folgt aus:

var builder = new BodyBuilder(); 
var pathImage = Path.Combine (Misc.GetPathOfExecutingAssembly(), "Image.png"); 
var image = builder.LinkedResources.Add (pathLogoFile); 

image.ContentId = MimeUtils.GenerateMessageId(); 

builder.HtmlBody = string.Format (@"<p>Hey!</p><img src=""cid:{0}"">", image.ContentId); 

message.Body = builder.ToMessageBody(); 

Wenn dies für Sie arbeitet, werde ich die Dokumentation aktualisieren.

Das Problem könnte sein, dass Apple multipart/related Implementierung nicht die Image.png Referenz löst mit dem Content-Location Header auf das Bild Mime Teil (möglicherweise, weil es sich um eine relative URL ist).

Der URL-Typ cid: sollte funktionieren, aber es ist ein bisschen schwieriger zu konstruieren, da Sie die Content-Id Werte für jeden Bildanhang kennen müssen.

+0

Guten Morgen. Und danke für deinen Tipp. Funktioniert super! Tatsächlich habe ich den cid: stuff auch mit meiner alten E-Mail-Komponente benutzt (bevor ich zu MailKit gewechselt habe). Also, diese Lösung ist perfekt für mich. THX nochmal. – Ingmar

+0

Ich lief heute ein paar mehr Probleme. Ich werde sie in separate Fragen/Beiträge hier auf Stackoverflow setzen und würde mehr als glücklich sein, wenn Sie ein paar einfachere Lösungen für mich hätten :) – Ingmar

+0

Ehrfürchtig, ich werde die MimeKit Dokumente aktualisieren, um diesen Ansatz zu verwenden. – jstedfast