private string mailServer = ConfigurationManager.AppSettings["EmailServer"]; private string mailUserName = ConfigurationManager.AppSettings["EmailUserName"]; private string mailPassword = ConfigurationManager.AppSettings["EmailPassword"]; private bool ssl = bool.Parse(ConfigurationManager.AppSettings["EmailSsl"]); private int port = int.Parse(ConfigurationManager.AppSettings["EmailPort"]); //toEmail 接收邮箱 public ServiceResult SendMail_imgTest(string toEmail) { var result = new ServiceResult() { Success = false, Message = "" }; try { var smtp = new SmtpClient(); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Host = mailServer;// smtp.Port = port;// smtp.EnableSsl = ssl;// smtp.Credentials = new System.Net.NetworkCredential(mailUserName, mailPassword); NameValueCollection myCol = new NameValueCollection(); string timeNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); myCol.Add("TaskName", "测试图片邮件"); myCol.Add("NowTime", timeNow); string mailBody = BulidByFile(Server.MapPath("/template/test.htm"), myCol); AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(mailBody, Encoding.UTF8, "text/html"); StreamReader StrStream = new StreamReader(Server.MapPath("/template/email_img.xml")); XElement Root = XElement.Load(StrStream.BaseStream); var emailImgList = (from img in Root.Elements().Elements("img") select img).ToList(); foreach (var i in emailImgList) { var src = i.FirstAttribute.Value; var name = i.LastAttribute.Value; LinkedResource lrImage = new LinkedResource(Server.MapPath("/template/" + src + ""), "image/gif"); lrImage.ContentId = name; htmlBody.LinkedResources.Add(lrImage); } StrStream.Close(); StrStream.Dispose(); MailMessage msg = new MailMessage(); // sender msg.From = new MailAddress("test@test.cn"); msg.AlternateViews.Add(htmlBody); msg.To.Add(toEmail); // if error, smtp server will be send notification msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; // subject 主题 msg.Subject = "测试图片邮件"; // subject encoding 编码 msg.SubjectEncoding = Encoding.UTF8; // format is html msg.IsBodyHtml = true; // body encoding msg.BodyEncoding = Encoding.UTF8; // body msg.Body = mailBody; smtp.Send(msg); result.Success = true; result.Message = mailBody; return result; } catch (Exception e) { return result; } } email_img.xml <?xml version="1.0" encoding="utf-8" ?> <Root> <emalimg> <img src="img1.jpg" cid="img_1"></img> <img src="img2.jpg" cid="img_2"></img> <img src="img3.jpg" cid="img_3"></img> <img src="img4.jpg" cid="img_4"></img> </emalimg> </Root>
src图片路径 cid是test.html<img src="cid:img_1" />对应就行了test.html 调用图片方法<img src="cid:img_1" />
C# 发送模板邮件并嵌入N张图片
最新推荐文章于 2019-05-26 00:27:34 发布