Probleme beim Senden eines Bildes per E-Mail als eingebettetes Bild im Körper. Die Bilddatei wird als Anhang angezeigt, was in Ordnung ist, aber der Inline-Bildteil wird nur als rotes x angezeigt.
Folgendes habe ich bisher
LinkedResource inline = new LinkedResource(filePath);
inline.ContentId = Guid.NewGuid().ToString();
MailMessage mail = new MailMessage();
Attachment att = new Attachment(filePath);
att.ContentDisposition.Inline = true;
mail.From = from_email;
mail.To.Add(data.email);
mail.Subject = "Client: " + data.client_id + " Has Sent You A Screenshot";
mail.Body = String.Format(
"<h3>Client: " + data.client_id + " Has Sent You A Screenshot</h3>" +
@"<img src=""cid:{0}"" />", inline.ContentId);
mail.IsBodyHtml = true;
mail.Attachments.Add(att);
inline.ContentId
, wann es eigentlich sein sollteatt.ContentId
.inline
ist überhaupt nicht erforderlich. Ich ziehe Ihre Frage allen Antworten vor, da Sie wirklich keine verwenden müssenAlternateView
.Antworten:
Versuche dies
quelle
Ein minimaler C # -Code zum Einbetten eines Bildes kann sein:
quelle
LinkedResource
, damit er im Webclient von Hotmail / Outlook.com funktioniert. FWIW, ich habe dies ebenso versucht wie @Microsoft DN und dies hat besser funktioniert.NewGuid()
, dieAttachmentBase
Klasse (die vonLinkedResource
erbt) erstellt ihn bei Bedarf bereits.quelle
Ein noch minimalistischeres Beispiel:
quelle
Zusätzlich zu den obigen Kommentaren habe ich die folgenden zusätzlichen Kommentare:
"cid:att-001"
funktioniert dies NICHT auf dem iPhone (Patch-Level Ende 2016), sondern es wird eine reine alphanumerische Zahl verwendet"cid:att-001" -> "cid:att001"
Nebenbei. Das Rendern von Outlook (auch Office 2015) (immer noch die klare Mehrheit für Geschäftsbenutzer) erfordert die Verwendung von HTML im TABLE TR TD-Stil, da es das HTML-Box-Modell nicht vollständig unterstützt.
quelle
Versuche dies.
quelle
Sie müssen die LinkedResource einer AlternateView hinzufügen
quelle
quelle
Die andere Lösung besteht darin, das Bild als Anhang anzuhängen und dann mit cid auf den HTML-Code zu verweisen. HTML Quelltext:
C # -Code:
quelle
quelle
Wir haben alle unsere bevorzugten Codierungsstile. Das habe ich getan:
quelle
Ich habe den vollständigen Code unten hinzugefügt, um Bilder in Google Mail, Thunderbird und anderen E-Mail-Clients anzuzeigen:
quelle