Using LinkedResource Class for Sending HTML E-mail in .NET 2.0
page 5 of 7
by Soyuj Kumar Sahoo
Feedback
Average Rating: 
Views (Total / Last 10 Days): 62379/ 85

How to embed an image using LinkedResource class

To create an embedded image we will need to first create an HTML view of the email using AlternateView class. Within that alternate view we need to create a tag that points to the ContentId (cid) of the LinkedResource of the image view as shown below.

Listing 1 – Sample for HTML view

// to embed images, we need to use the prefix 'cid' in the img src value
string htmlBody = "<b>This is the embedded image file.</b><DIV> </DIV>";
htmlBody += "<img alt=\"\" hspace=0 src=\"cid:uniqueId\" align=baseline border=0 >";
htmlBody += "<DIV> </DIV><b>This is the end of Mail...</b>";
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlBody, 
    null, "text/html");     

Then we need to create a LinkedResource object and add it to the AlternateView's LinkedResources Collection. Again, before adding this be sure to set the ContentId property of LinkedResource class as that unique value set in the HTML tag of AlternateView (i.e. cid). Here we need to set the TransferEncoding property of LinkedResource to Base64 which is the default for the image.

Listing 2 – Sample for Image resource

// create the image resource from image path using LinkedResource class..            
LinkedResource imageResource = new LinkedResource("c:\\attachment\\image1.jpg" , 
    "image/jpeg");
imageResource.ContentId = "uniqueId";
imageResource.TransferEncoding = TransferEncoding.Base64;

Here "uniqueId" is the common unique cid value. Let us add the above "imageResource" to "htmlView."

Listing 3 – Sample for adding Image in HTML part

// adding the imaged linked to htmlView...
htmlView.LinkedResources.Add(imageResource);

Then we have to add this htmlView (AlternateView object) to the MailMessage object.

Listing 4 – Setting the mail message

// add the view
mail.AlternateViews.Add(htmlView);

View Entire Article

User Comments

Title: hi   
Name: jagadeesh
Date: 2012-09-26 3:56:19 AM
Comment:
cdfgd
Title: Nice Article   
Name: Sankara Narayanan
Date: 2011-01-03 7:01:55 AM
Comment:
Thank you very much, i tried its working fine. i have one doubt how can i set background image? i tried as you mention, but i cant. please help me.

Thanks & Regards
Sankara Naryananan
Title: Thank you from Mexico   
Name: Marcelino Ramirez Maldonado
Date: 2010-05-07 9:29:02 PM
Comment:
Thank you. Together with your another article and this one, they are the best mail sending articles i have seen in my life!!

¡Muchas gracias!
Title: hi   
Name: Sumit Kalra
Date: 2010-04-18 3:03:57 AM
Comment:
Though this code image not display at IE8
Title: can you provide an example embedding into word (not mail)   
Name: Chuck Farah
Date: 2009-01-06 3:24:11 PM
Comment:
I am trying to provide an embedd type of feature only in a word doc downloaded to their pc. i have tried this by using the src property for the image.

i use response.Write(strBody)
Title: Will not send AlternateView through server   
Name: Nick
Date: 2008-01-25 7:26:57 AM
Comment:
Hi,

This is a great article, very well explained. There's is a problem I have with the AlternateView though.

I have had the code working great locally with some nice results, however when I transfer the files onto a server the AlternativeView seems to stop the mail from sending. I have commented this out and a plain mail message sends fine on the server. So i know everything works except for when I try and use the AlternateView.


Have you ever come across this proble?

Cheers
Title: Great   
Name: Esteban
Date: 2007-11-08 3:37:53 PM
Comment:
Great article, very usefull how to add the image, thanx once again!!!
tete

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-25 12:35:44 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search