![]() |
Web Development »
ASP.NET »
General
Intermediate
License: The Code Project Open License (CPOL)
Embed image in Email - ASP.NET , C#By Rajesh C MedackelCode to embed logo and other images while sending email |
Windows, .NET, ASP.NET, Visual Studio, Dev
|
||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
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
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 !
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 13 Dec 2007 Editor: |
Copyright 2006 by Rajesh C Medackel Everything else Copyright © CodeProject, 1999-2009 Web22 | Advertise on the Code Project |