2009-10-05 73 views
5

Tôi có một ứng dụng gửi email có định dạng HTML có hình ảnh được nhúng. Email trông hoàn hảo trên nhiều máy khách web/máy tính để bàn khác nhau. Khi email được xem trên điện thoại di động hỗ trợ email HTML (được thử nghiệm trên iPhone, WinMo 6.1), hình ảnh được hiển thị dưới dạng chữ 'X màu đỏ'. Tất cả các HTML khác đang được hiển thị chính xác. Để rõ ràng, sự cố chỉ xảy ra trên các ứng dụng khách di động chứ không phải trên máy khách.Hình ảnh nhúng trong email HTML không hiển thị trên điện thoại di động

Mã nhúng hình ảnh đang làm việc một cách hoàn hảo và tôi không tin rằng có bất kỳ vấn đề với nó nhưng tôi đã bao gồm một số mẫu mã nhanh chóng dưới đây chỉ trong trường hợp:

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

Có ai biết tại sao nhúng hình ảnh không được hiển thị trên các ứng dụng di động? Tốt hơn, làm cách nào tôi có thể hiển thị hình ảnh chính xác?

Chỉnh sửa: Nếu Outlook 2007 (và ở trên) gửi email kèm hình ảnh thì hình ảnh được hiển thị chính xác trong ứng dụng khách và máy tính để bàn di động. Nếu email được định dạng HTML được gửi kèm với hình ảnh được nhúng thì hình ảnh không được hiển thị chính xác trong ứng dụng khách di động nhưng được hiển thị chính xác trong ứng dụng khách trên máy tính để bàn.

Làm thế nào Outlook có thể gửi email với hình ảnh được hiển thị tự tin nhưng nếu được gửi qua ứng dụng web (sử dụng hình ảnh được nhúng), ứng dụng khách sẽ chặn hình ảnh. Sự khác biệt giữa hai là gì?

+0

Thật khó có thể nói mà không nhìn thấy email được tạo ra. Mã này trông có vẻ lành mạnh. –

+0

Thật đơn giản để tưởng tượng: hình ảnh được nhúng đang bị chặn như thể chúng bị chặn tải xuống nhưng hình ảnh được nhúng và không cần tải xuống. Chỉ cần được rõ ràng, các hình ảnh nhúng hiển thị hoàn hảo trong Outlook. Nó chỉ có trong các máy khách di động nơi các hình ảnh nhúng không được hiển thị chính xác. –

Trả lời

3

tôi cuối cùng đã tìm thấy câu trả lời cho vấn đề này: ContentType tùy chọn của LinkedResource không được đặt. khách hàng máy tính để bàn có thể tìm ra

Từ MSDN:

Thông tin trong lớp ContentType được sử dụng để mô tả dữ liệu chứa trong một thông báo e-mail trong đó một cách mà phần mềm sẽ hiển thị e -mail có thể hiển thị nội dung theo cách thích hợp .ContentType là được sử dụng với lớp Đính kèm để chỉ định loại nội dung trong tệp đính kèm .

Outlook có thể hiểu được hình ảnh đính kèm được hiển thị như thế nào nhưng các khách hàng di động cần thêm thông tin.

0

Nguyên nhân thường xuyên nhất là cài đặt trên điện thoại thông minh được đặt để ngăn tải xuống hình ảnh email theo mặc định. Trên hầu hết các điện thoại, hành vi mặc định là họ phải tải xuống hình ảnh theo cách thủ công, thường bằng nút hoặc cài đặt trong ứng dụng email, nếu họ muốn xem hình ảnh được đính kèm với email cụ thể đó. Đó là cài đặt tương tự tôi cũng sử dụng trong cài đặt Outlook trên máy tính để bàn và máy tính xách tay của mình. Đối với hầu hết các ứng dụng email, đó là điều bảo vệ chống spam. Đối với các điện thoại, nó cũng để tiết kiệm băng thông từ việc sử dụng không cần thiết. Bạn không bao giờ nên dựa vào các khách hàng luôn luôn nhìn thấy những hình ảnh theo mặc định.

+0

Không, đó không phải là trường hợp đối với hình ảnh được nhúng. Những hình ảnh đến khách hàng với những hình ảnh đã được đính kèm. Người dùng sẽ không được khách hàng yêu cầu tải xuống hình ảnh. Đó là một trong những lợi ích của việc nhúng. Tất cả mọi thứ hoạt động tốt đẹp và chỉ cần làm thế nào bạn muốn nó và bảo vệ thư rác không đi vào chơi. –

2

Điều này giống như những người dùng khác đã nói, một vấn đề về sở thích và một lỗi đã biết.

Alison, bạn có tích cực là các tệp nhị phân hình ảnh đã chuyển tới điện thoại không? Như những người dùng khác đã nêu, vấn đề về sở thích có thể là một mặc định để cắt giảm tải xuống vô tình các hình ảnh cồng kềnh cho các khách hàng di động với các gói dữ liệu hạn chế.

Đối với các vấn đề được biết đến, vui lòng xem

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

Cảm ơn và chúc may mắn ...

EDIT: Whoa ... Đây là một câu hỏi oldie;)

0

tốt câu trả lời 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); 

tôi chỉ thử nghiệm nó và nó làm việc như một nét duyên dáng. bạn sẽ muốn xác định loại tệp của bạn tất nhiên. đây là một danh sách các loại phương tiện truyền thông:

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

Các vấn đề liên quan