C # Email встроенное изображение не отображается в IE - PullRequest
3 голосов
/ 22 июля 2011

Я использую C # .Net для отправки электронного письма в формате HTML, содержащего встроенные изображения.Эти электронные письма прекрасно работают в Firefox и Chrome, но изображения не отображаются в Internet Explorer (IE).Я знаю, что настройки IE не вызывают проблемы, поскольку встроенные изображения, отправленные с помощью Blat, работают нормально.Я пропускаю некоторые опции, такие как набор символов, который вызывает эту проблему?Мой код выглядит следующим образом

 MailMessage msg = new MailMessage();
 MailAddress from = new MailAddress("Myemail@MyDomain", "My Name");
 msg.To.Add("Myemail@MyDomain");
 msg.From = from;
 msg.Subject = "My subjecct line";

 AlternateView htmlView = AlternateView.CreateAlternateViewFromString("This is a sample JPG embedded image<br><img src=\"cid:image1.jpg\">", null, "text/html");

 LinkedResource EmbeddedObjects1 = new LinkedResource("PathToImage\\image1.jpg");
 EmbeddedObjects1.ContentId = "image1.jpg";
 htmlView.LinkedResources.Add(EmbeddedObjects1);

msg.AlternateViews.Add(htmlView);
SmtpClient smtpclient = new SmtpClient("mailhost.domain.com", PortNumber);
smtpclient.Send(msg);

Ответы [ 3 ]

1 голос
/ 22 июля 2011

Может быть, это поможет, если вы создадите LinkedResource с ContentType в сочетании с идеей GUID в кодировании Gorilla в качестве content-id:

Guid contentId = Guid.NewGuid().ToString();

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
  "This is a sample JPG embedded image<br><img src=\"cid:" + contentId + "\">", 
  null, "text/html");

ContentType ct = new ContentType(MediaTypeNames.Image.Jpeg);

LinkedResource EmbeddedObjects1 = new LinkedResource("PathToImage\\image1.jpg", ct);
EmbeddedObjects1.ContentId = contentId;
htmlView.LinkedResources.Add(EmbeddedObjects1);
0 голосов
/ 23 июля 2011

Попробуйте добавить следующее.

msg.IsBodyHtml = true;

Кроме того, я обычно настраиваю свой AlternateView следующим образом.

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(html, new ContentType("text/html"));
0 голосов
/ 22 июля 2011

Встроенные изображения работают путем создания dataUri схем .IE <8 не поддерживает их. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...