dongxiaoling1029

导航

【转】邮件 and 图片

邮件内容调用图片格式为:<img src=\"cid:Email001\">

发送邮件的服务端代码为:

SmtpClient 发送邮件的对象

折叠C# 代码
  1. System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();      
  2. mailMessage.From="发送者邮箱";      
  3. mailMessage.To.Add("收件人邮件列表");      
  4. mailMessage.CC.Add("抄送人邮件列表");      
  5. mailMessage.Subject = subject;      
  6. AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(content,null,"text/html");      
  7. LinkedResource lrImage = new LinkedResource("a.jpg","image/gif");      
  8. lrImage.ContentId = "Email001";      
  9. htmlBody.LinkedResources.Add(lrImage);      
  10. mailMessage.AlternateViews.Add(htmlBody);      
  11. SmtpClient.Send(mailMessage);     

例程:

折叠C# 代码
  1.             SmtpClient smtp = new SmtpClient();   
  2.              smtp.DeliveryMethod = SmtpDeliveryMethod.Network;   
  3.              smtp.Host = "smtp.163.com";   
  4.              smtp.Credentials = new NetworkCredential("renzhijie1111", "**");   
  5.   
  6.              MailMessage mm = new MailMessage();   
  7.              mm.From = new MailAddress("test@163.com", "test");   
  8.              mm.To.Add("test2@163.com");   
  9.   
  10.              mm.Subject = "测试图片邮件";   
  11.   
  12.             string plainTextBody = "如果你邮件客户端不支持HTML格式,或者你切换到“普通文本”视图,将看到此内容";   
  13.              mm.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));   
  14.   
  15.             ////HTML格式邮件的内容   
  16.             string htmlBodyContent = "如果你的看到<b>这个</b>, 说明你是在以 <span style=\"color:red\">HTML</span> 格式查看邮件<br><br>";   
  17.              htmlBodyContent += "<a href=\"http://www.fenbi360.net粉笔编程网</a> <img src=\"cid:weblogo\">";    //注意此处嵌入的图片资源   
  18.              AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");   
  19.   
  20.               
  21.              LinkedResource lrImage = new LinkedResource(@"d:\1.jpg", "image/gif");   
  22.              lrImage.ContentId = "weblogo"; //此处的ContentId 对应 htmlBodyContent 内容中的 cid: ,如果设置不正确,请不会显示图片   
  23.              htmlBody.LinkedResources.Add(lrImage);   
  24.   
  25.              mm.AlternateViews.Add(htmlBody);   
  26.   
  27.             ////要求回执的标志   
  28.              mm.Headers.Add("Disposition-Notification-To", "test@163.com");   
  29.   
  30.             ////自定义邮件头   
  31.              mm.Headers.Add("X-Website", "http://www.fenbi360.net");   
  32.   
  33.             ////针对 LOTUS DOMINO SERVER,插入回执头   
  34.              mm.Headers.Add("ReturnReceipt", "1");   
  35.   
  36.              mm.Priority = MailPriority.Normal; //优先级   
  37.              mm.ReplyTo = new MailAddress("test2@163.com", "我自己");   
  38.   
  39.             ////如果发送失败,SMTP 服务器将发送 失败邮件告诉我   
  40.              mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;   
  41.   
  42.             ////异步发送完成时的处理事件   
  43.              smtp.SendCompleted += new SendCompletedEventHandler(smtp_SendCompleted);   
  44.   
  45.             ////开始异步发送   
  46.              smtp.SendAsync(mm, null);   
  47.   
  48.   
  49.   
  50.   
  51.   
  52. void smtp_SendCompleted(object sender, AsyncCompletedEventArgs e)   
  53.          {   
  54.             if (e.Cancelled)   
  55.              {   
  56.                  MessageBox.Show("发送被取消");   
  57.              }   
  58.             else  
  59.              {   
  60.                 if (e.Error == null)   
  61.                  {   
  62.                      MessageBox.Show("发送成功");   
  63.                  }   
  64.                 else  
  65.                  {   
  66.                      MessageBox.Show("发送失败: " + e.Error.Message);   
  67.                  }   
  68.              }   
  69.          }   

posted on 2011-05-31 22:06  dongxiaoling1029  阅读(251)  评论(0编辑  收藏  举报