Mengalami masalah pengiriman gambar melalui email sebagai gambar yang disematkan di badan. File gambar ditampilkan sebagai lampiran yang baik-baik saja tetapi bagian gambar sebaris hanya ditampilkan sebagai x merah.
Inilah yang saya miliki sejauh ini
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
, padahal seharusnyaatt.ContentId
.inline
tidak diperlukan sama sekali. Saya lebih suka pertanyaan Anda daripada semua jawaban, karena Anda benar-benar tidak perlu menggunakanAlternateView
.Jawaban:
Coba ini
sumber
Beberapa kode c # minimal untuk menanamkan gambar, bisa berupa:
sumber
LinkedResource
untuk membuatnya bekerja di klien web Hotmail / Outlook.com. FWIW, saya mencoba ini juga @Microsoft DN dan ini bekerja lebih baik.NewGuid()
,AttachmentBase
kelas (yangLinkedResource
diwarisi dari) sudah membuatnya jika diperlukan.sumber
Selain komentar di atas, saya memiliki komentar tambahan berikut:
"cid:att-001"
ini TIDAK berfungsi di iPhone (level tambalan akhir 2016), lebih baik gunakan alfa numerik murni"cid:att-001" -> "cid:att001"
Sebagai tambahan. Rendering Outlook (bahkan Office 2015) (masih merupakan mayoritas yang jelas untuk pengguna bisnis) memerlukan penggunaan HTML gaya TABLE TR TD karena tidak sepenuhnya mendukung model kotak HTML.
sumber
Contoh yang lebih minimalis lagi:
sumber
Coba ini.
sumber
Anda perlu menambahkan LinkedResource ke AlternateView
sumber
sumber
Solusi lain adalah melampirkan gambar sebagai lampiran dan kemudian mereferensikan kode html menggunakan cid. Kode HTML:
C # Kode:
sumber
sumber
Kita semua memiliki gaya pengkodean pilihan kita. Inilah yang saya lakukan:
sumber
Saya menambahkan kode lengkap di bawah ini untuk menampilkan gambar di Gmail, Thunderbird dan klien email lainnya:
sumber