Click here to Skip to main content
Licence CPOL
First Posted 11 Dec 2006
Views 117,957
Bookmarked 43 times

Embed image in Email - ASP.NET , C#

By | 13 Dec 2007 | Article
Code to embed logo and other images while sending email

Introduction

This is a simple article which tells you how you can embed images in emails. This can be very useful when you want to send emails from your website.A common scenario would be when a new user registers with your site and you want to send a welcome email with your site's logo on top.

I searched the net when I faced this issue. I am grateful to many authors from where I could make a  start. I have used their code while writing this. Due credit goes to them all. The intention is to make the code available for the others too.  To use this all you have to so is copy the code and paste it in any button click event.

This may only work with ASP.NET 2.0 & C#. I have tested it too. It will not run in ASP.NET 1.1.

 Namespaces Used

   using System.Net.Mail;
   using System.Net.Mime;

 

CODE

 // send mail to the new user who has registered.
   protected void yourButton_Click(object sender, EventArgs e)
    {
            
            string strMailContent = "Welcome new user";
            string fromAddress = "yourname@yoursite.com";
            string toAddress = "newuser@hisdomain.com";
            string contentId  = "image1";
            string path = Server.MapPath(@"images/Logo.jpg"); // my logo is placed in images folder
            MailMessage mailMessage = new MailMessage( fromAddress, toAddress );
            mailMessage.Bcc.Add("inkrajesh@hotmail.com"); // put your id here
            mailMessage.Subject = "Welcome new User";
          

            LinkedResource logo = new LinkedResource(path);
            logo.ContentId = "companylogo";
     // done HTML formatting in the next line to display my logo
            AlternateView av1 = AlternateView.CreateAlternateViewFromString("<html><body><img src=cid:companylogo/><br></body></html>" + strMailContent, null, MediaTypeNames.Text.Html);
            av1.LinkedResources.Add(logo);


            mailMessage.AlternateViews.Add(av1);
            mailMessage.IsBodyHtml = true;
            SmtpClient mailSender = new SmtpClient("localhost"); //use this if you are in the development server
                        mailSender.Send(mailMessage);
           
        }   

 Note:SmtpClient mailSender = new SmtpClient(ConfigurationManager.AppSettings["MyCustomId"]); // use this in the Production Server. I have specified my email server in the web.config file

Remarks

The image may not be displayed in Outlook Express. It worked well when the mail was viewed in Yahoo. If your site is not a trusted one there is a chance that the image may be blocked.  It did not work with Hotmail and Gmail.  

There are other ways to show images, but like many authors have pointed out they do not embed the image. They always refer to the parent site. The image won't be displayed when offline or when the location of the image has changed in the parent site

Do please send your comments . I would be happy to hear from you.

Thank you , Happy Coding !

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Rajesh C Medackel

Web Developer

India India

Member

A Mechanical Engineer, MBA working in Microsoft Technologies. Currently employed with a software major in Mumbai,India

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
Questionhtml templates in asp.net PingroupHari Chowdary21:38 8 May '12  
QuestionPicture not adding to the body of the mail PinmemberHayden Pinto5:51 9 Mar '12  
GeneralMy vote of 2 PingroupRajesh Duraisamy4:38 17 Aug '11  
GeneralChanges for it to work on Gmail and Thunderbird PinmemberMember 78641071:32 22 Apr '11  
GeneralMy vote of 1 PinmemberRam Shah23:50 22 Sep '10  
QuestionHow to display images in Windows Live Mail [modified] PinmemberMorcoveata2:12 23 Aug '10  
AnswerRe: How to display images in Windows Live Mail PinmemberrurouniRonin9:12 3 May '11  
Generalthanks ! Pinmemberaicha20080:56 9 Sep '09  
Questionhow to send mail within intranet. Pinmembersudhir behera18:00 8 Sep '09  
GeneralI had trouble getting this to work in Visual Studio 2008 Pinmembermbizzile10:56 6 Feb '09  
QuestionImage stream attachments? PinmemberPSU Mike5:00 7 Aug '08  
Generaldo not work with outlook 2007 Pinmembermrodrig@renacimiento.com1:06 24 Jul '08  
GeneralRe: do not work with outlook 2007 PinmemberKenL_MCSE7:24 31 Oct '08  
GeneralRe: do not work with outlook 2007 PinmemberMember 435949320:17 10 Dec '08  
GeneralRe: do not work with outlook 2007 PinmemberMaciusA22:17 28 Apr '10  
GeneralAdd Button in Email Pinmemberdtkubal1:54 4 Mar '08  
GeneralRe: Add Button in Email PinmemberRajesh C Medackel2:03 12 Mar '08  
GeneralVery good article Pinmembera-tibi2:44 27 Nov '07  
QuestionAdding Text after Image PinmemberSheila K9:08 26 Jul '07  
Questionimage going as attachement PinmemberDilipV6:40 26 Jun '07  
AnswerRe: image going as attachement PinmemberDilipV7:06 26 Jun '07  
Questionhow to send mail using outlook express 9.0 (asp.net 2.0)? PinmemberJesu.Official17:08 14 Feb '07  
GeneralPost Code Pinmemberlaokimsea19:24 5 Jan '07  
GeneralRe: Post Code PinmemberRajesh C Medackel3:01 29 Jan '07  
Smile | :) Please copy the code (which I have given in the article) and paste it in the event you want the mail to be generated. In this case I have done it in in the Button click event.
 
Rememeber to add the Namespaces too.
 
I hope this helps Smile | :)

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120529.1 | Last Updated 14 Dec 2007
Article Copyright 2006 by Rajesh C Medackel
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid