如何在ASP.NET中发送嵌入图片的邮件

来源:互联网 发布:ssm管理系统源码下载 编辑:程序博客网 时间:2024/06/11 21:12
 如何在ASP.NET中发送嵌入图片的邮件


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

  
        MailMessage mail 
= new MailMessage();

        
//set the addresses
        mail.From = new MailAddress("xx@xxx.com");
        mail.To.Add(
"xx@xxx.com");
        //set the content
        mail.Subject = "Test";


//first we create the Plain Text part
        AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my text , viewable by those clients that don't support html"null"text/plain");
        
string htmlView1 = "This is my text , viewable by those clients that don't support html";
        
//then we create the Html part
        
//to embed images, we need to use the prefix 'cid' in the img src value
        
//the cid value will map to the Content-Id of a Linked resource.
        
//thus <img src='cid:logo'> will map to a LinkedResource with a ContentId of 'companylogo'
        AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlView1 + "<a href = "" ><img src="cid:logo" /></a>"null, System.Net.Mime.MediaTypeNames.Text.Html);

        
//create the LinkedResource (embedded image)
        string path = Server.MapPath(@"Images/logo.jpg");
      
//  LinkedResource logo = new LinkedResource(path);
        LinkedResource logo = new LinkedResource(path, "image/jpeg");
        logo.ContentId 
= "logo";
        
//add the LinkedResource to the appropriate view
        htmlView.LinkedResources.Add(logo);

        
//add the views
        mail.AlternateViews.Add(plainView);
        mail.AlternateViews.Add(htmlView);

        mail.IsBodyHtml 
= true;
        
//send the message
        SmtpClient smtp = new SmtpClient();//"127.0.0.1"); //specify the mail server address
        smtp.Send(mail);