2009-10-05 3 views
5

У меня есть приложение, которое отправляет письмо в формате HTML со встроенными изображениями. Электронная почта идеально подходит для многих разных настольных/веб-клиентов. Когда электронное письмо просматривается на мобильном телефоне, поддерживающем HTML-письмо (протестированное на iPhone, WinMo 6.1), изображения отображаются как красные «X». Все остальные HTML отображаются правильно. Чтобы быть ясным, проблема ТОЛЬКО происходит на мобильных клиентах, а не на настольных клиентах.Встроенные изображения в HTML-сообщении, не отображающемся на мобильных телефонах

Код для встраивания изображений в прекрасно работает, и я не думаю, что есть какие-либо проблемы с ним, но я включил некоторые быстрые примеры кода ниже только в случае, если:

MailMessage mail = new MailMessage(); 
      mail.To.Add("[email protected]"); 
      mail.From = new MailAddress("[email protected] myemail.com"); 
      mail.Subject = "Image sample - fails in mobile clients"; 
      string Body = "Sample email text<img src=\"cid:imageId\" />"; 

      AlternateView htmlView = AlternateView.CreateAlternateViewFromString(Body, null, "text/html"); 
      LinkedResource lr = new LinkedResource("myImage.jpg"); 
      lr.ContentId = "imageId"; 
      htmlView.LinkedResources.Add(lr); 

      mail.AlternateViews.Add(htmlView); 
      SmtpClient smtpClient = new SmtpClient(); 
      smtpClient.Send(mail); 

Кто-нибудь знает, почему внедренный изображения не отображаются на мобильных клиентах? Еще лучше, как я могу правильно отображать изображения?

Редактировать: Если Outlook 2007 (и выше) отправляет электронное письмо с изображениями, то изображения отображаются правильно в клиентском клиенте для мобильных ПК и на рабочем столе. Если отправленное HTML-письмо отправляется со встроенными изображениями, то изображения отображаются неправильно в мобильном клиенте, но отображаются корректно на рабочем столе.

Как Outlook может отправлять сообщения с уверенным отображением изображений, но при отправке через веб-приложение (с помощью встроенных изображений) мобильный клиент блокирует изображения. Какая разница между двумя?

+0

На самом деле трудно сказать, не видя сформированную электронную почту. Код действительно выглядит здравомыслящим. –

+0

Просто представить себе: встроенные изображения блокируются, как если бы они были заблокированы от загрузки, но изображения были встроены и не нужно загружать. Чтобы быть понятным, встроенные изображения отлично отображаются в Outlook. Только в мобильных клиентах, где встроенные изображения отображаются неправильно. –

ответ

3

I наконец, нашел ответ на эту проблему: необязательный ContentType LinkedResource не был установлен. Настольные клиенты могут выяснить

От MSDN:

Информация в классе ContentType используется для описания данных , содержащиеся в сообщении электронной почты с таким образом, что программное обеспечение, которое отображает е -mail может представить содержимое в соответствующим образом.ContentType - , используемый с классом Attachment до , укажите тип содержимого в приложении .

Outlook смог понять, как должно отображаться прикрепленное изображение, но мобильным клиентам требуется дополнительная информация.

0

Чаще всего причиной являются настройки на смартфоне, установленные для предотвращения загрузки изображений электронной почты по умолчанию. На большинстве телефонов поведение по умолчанию заключается в том, что они должны загружать изображения вручную, обычно с помощью кнопки или настройки в почтовом клиенте, если они хотят видеть изображения, прикрепленные к этому конкретному письму. Это та же настройка, которую я использую в настройках своего рабочего стола и ноутбука Outlook. Для большинства почтовых клиентов это защита от спама. Для телефонов также необходимо экономить пропускную способность от ненужного использования. Вы никогда не должны рассчитывать на то, что клиенты всегда видят изображения по умолчанию.

+0

Нет, это не относится к встроенным изображениям. Изображения поступают к клиенту с уже прикрепленными изображениями. Пользователи не будут запрашивать своих клиентов для загрузки изображений. Это одно из преимуществ внедрения. Все работает красиво и просто, как вы хотели бы этого, и защита от спама не вступает в игру. –

2

Это, как сказали другие пользователи, вопрос о предпочтениях и известная ошибка.

Элисон, вы уверены, что двоичные файлы изображений направились к телефону? Как отмечали другие пользователи, проблема с настройками может по умолчанию сводиться к непреднамеренной загрузке громоздких изображений для мобильных клиентов с ограниченными планами данных.

Что касается известной проблемы, пожалуйста, см

http://www.google.com/support/forum/p/Google+Mobile/thread?tid=6470e77d94f0315c&hl=en

Спасибо и удачи ...

EDIT: Вау ... это старичок вопрос;)

0

хороший ответ here:

string attachmentPath = Environment.CurrentDirectory + @"\test.png"; 
Attachment inline = new Attachment(attachmentPath); 
inline.ContentDisposition.Inline = true; 
inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline; 
inline.ContentId = contentID; 
inline.ContentType.MediaType = "image/png"; 
inline.ContentType.Name = Path.GetFileName(attachmentPath); 

message.Attachments.Add(inline); 

Я просто проверял, и он работал как шарм. вы, конечно, захотите определить свой тип файла. здесь приведен список типов носителей:

http://www.fileformat.info/info/mimetype/image/index.htm