Возникла проблема с отправкой изображения по электронной почте в виде встроенного изображения в тело. Файл изображения отображается как вложение, что нормально, но часть встроенного изображения отображается просто красным крестиком.
Вот что у меня есть
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
, что на самом деле должно бытьatt.ContentId
.inline
совсем не требуется. Я предпочитаю ваш вопрос всем ответам, поскольку вам действительно не нужно использовать расширениеAlternateView
.Ответы:
Попробуй это
источник
Некоторый минимальный код C # для встраивания изображения может быть:
источник
LinkedResource
чтобы он работал в веб-клиенте Hotmail / Outlook.com. FWIW, я пробовал это, а также @Microsoft DN, и это сработало лучше.NewGuid()
,AttachmentBase
класс (LinkedResource
наследующий от) уже при необходимости его создает.источник
В дополнение к комментариям выше у меня есть следующие дополнительные комментарии:
"cid:att-001"
это НЕ работает на iPhone (уровень исправлений конца 2016 года), вместо этого используйте чисто буквенно-цифровые"cid:att-001" -> "cid:att001"
Как в сторону. Визуализация Outlook (даже Office 2015) (по-прежнему явное большинство для деловых пользователей) требует использования HTML в стиле TABLE TR TD, поскольку он не полностью поддерживает блочную модель HTML.
источник
Еще более минималистичный пример:
источник
Попробуй это.
источник
Вам нужно добавить LinkedResource в AlternateView
источник
источник
Другое решение - прикрепить изображение как вложение, а затем ссылаться на его html-код с помощью cid. HTML-код:
Код C #:
источник
источник
У всех нас есть предпочтительные стили кодирования. Вот что я сделал:
источник
Я добавил полный код ниже для отображения изображений в Gmail, Thunderbird и других почтовых клиентах:
источник