Встраивание изображений в электронные письма - PullRequest
6 голосов
/ 19 августа 2011

Я создал программу C # Webform для отправки писем с напоминаниями клиентам на моей веб-странице.

В Outlook все работает нормально.и в Gmail на FireFox.

Я только что обнаружил (я не использую IE), что в IE 8 в gmail он не отображает изображение?

Он просто содержит X и альтернативный текст.

Я не могу понять, почему IE 8 и gmail не отображают изображения, и я немного поиграл с этим.

в C #:

LinkedResource emo2 = new LinkedResource(logoPath);
emo2.ContentId = "logo";
emo2.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
htmlView.LinkedResources.Add(emo2);

и в моем HTMLfile:

<img id="header" alt="MyWebpage" src="cid:logo" />

Отправка информационных бюллетеней по электронной почте очень разочаровывает всех клиентов.но я никогда не думал, что Gmail будет моей проблемой!

Ответы [ 4 ]

3 голосов
/ 31 августа 2011

У нас было аналогичное требование вставлять изображения в электронное письмо в формате HTML вместо ссылки на изображения, размещенные на нашем веб-сайте.Основное отличие состоит в том, что пользователю не нужно нажимать «показать все изображения» в своем почтовом клиенте, то есть электронное письмо должно отображаться сразу же после того, как оно было получено.

Мы создали встроенные изображения, и они отлично работалиOutlook и некоторые другие почтовые клиенты, но мы обнаружили, что некоторым почтовым клиентам они не нравятся, как вы заметили в gmail.После нескольких дней исследований и проб разных вещей мы пришли к выводу, что не существует серебряной пули, которая позволила бы вашей электронной почте правильно отображать встроенные изображения во всех основных почтовых клиентах.

Мы установили и разместили изображения на нашем веб-сайте (что означает, что пользователь получает кнопку «показать все изображения» ...) и использовали что-то вроде:

<img src="http://website/image.jpg"/>

Если вынаберитесь терпения, вы можете встраивать изображения для всех адресов электронной почты, кроме определенного (например, @ gmail.com), но я бы предпочел последовательность и, следовательно, просто ссылку на изображения.

0 голосов
/ 15 апреля 2013

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

var imgContentType = new ContentType(MediaTypeNames.Image.Jpeg);

, он не появлялся в IE.Затем я посмотрел на существующее письмо, и изображение в нем имело тип контента "image / png; name =" image1.png ". Как только я добавил имя к типу контента, изображения начали появляться. Я думаю, IE нуждается врасширение изображения, чтобы знать, что делать с изображением src

0 голосов
/ 11 декабря 2012

Очень поздний ответ, но держу пари, что jpg, который вы встраиваете, не является jpg RBG, скорее всего, CMYK.

0 голосов
/ 19 августа 2011

Попробуйте добавить это в конец LinkedResource:

logoPath, MediaTypeNames.Image.Jpeg);

Предположим, ваш логотип является JPG! Кроме того, htmlView и AlternateView?

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