2015-07-14 5 views
6

Я использую MailKit/MimeKit 1.2.7 (последняя версия NuGet).MimeKit: как вставлять изображения?

Я попытался встроить изображение в тело HTML моего письма, следуя образцу из API documentation (раздел «Использование BodyBuilder»).

Мой текущий код выглядит следующим образом:

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(); 

Я могу отправить это письмо, и на самом деле изображение является прикреплено к письму. Но это не встроенный.

Я что-то упустил? Или это ошибка Apple Mail (это почтовый клиент, который я использую для получения электронной почты)?

Я благодарен за любую идею (и большое спасибо Джеффри Стедфасту за предоставление такого замечательного инструментария!).

Ингмар

ответ

13

попробовать что-то немного больше, как это:

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(); 

Если это работает для вас, я буду обновлять документацию.

Проблема может заключаться в том, что реализация Apple multipart/related не разрешает ссылку Image.png с использованием заголовка Content-Location на изображении mime part (возможно, потому что это относительный URL).

URL-тип cid: должен работать, но его немного сложнее построить, так как вам нужно знать значения Content-Id для каждого вложения изображения.

+0

Доброе утро. И спасибо за подсказку. Прекрасно работает! На самом деле я использовал cid: материал с моим старым компонентом электронной почты (до перехода на MailKit). Итак, это решение идеально для меня. THX снова. – Ingmar

+0

Я столкнулся с еще несколькими проблемами, хотя сегодня. Я поместил их в отдельные вопросы/сообщения здесь в stackoverflow и был бы более чем счастлив, если бы у вас было несколько более простых решений для меня :) – Ingmar

+0

Удивительно, я обновлю документы MimeKit, чтобы использовать этот подход. – jstedfast

Смежные вопросы