平时经常会收到一些邮件,打开之后就直接是一个图文并茂的网页;我想问一下这个功能怎么实现?
我现在可以用MailMessage类实现发邮件的功能,但是只会发text页面;我知道发html的页面需要将MailMessage的属性IsBodyHtml设为true; 但是body部分应该怎么写呢?
------解决方案--------------------------------------------------------
参考:
http://www.cnblogs.com/insus/articles/1689279
------解决方案--------------------------------------------------------
test.body="<html><body>.....</body></html>";
------解决方案--------------------------------------------------------
多种发邮件的方法,同步,异步。。(要发送HTML格式的,把HTML代码拼接好,赋给Body就可以)
http://www.cnblogs.com/aijun/archive/2011/03/15/1984558
------解决方案--------------------------------------------------------
- C# code
#region 发送邮件 /// <summary> /// 通过附件发送邮件 /// </summary> /// <param name="emailFrom">发送人邮箱地址</param> /// <param name="files">图片地址</param> /// <param name="emailFromName">发送人姓名</param> /// <param name="zsrList">收件人集合</param> /// <param name="csrList">抄送人集合</param> /// <param name="arrFilePath">附件路径</param> /// <param name="mailSubject">主题</param> /// <param name="mailBody">正文内容</param> /// <returns></returns> public static bool SendEmail(string emailFrom, string[] files, string emailFromName, IList<CSR> zsrList, IList<CSR> csrList, ArrayList arrFilePath, string mailSubject, string mailBody) { MailMessage Email = new MailMessage(); try { MailAddress EmailFrom = new MailAddress(emailFrom, emailFromName); //创建发件人邮箱地址对象 Email.From = EmailFrom; //指定发件人 Email.CC.Add(EmailFrom); //将发件人作为抄送人发一份 for (int i = 0; i < zsrList.Count; i++) //循环添加主送人邮箱地址对象 { MailAddress zsrAddr = new MailAddress(zsrList[i].EMAIL, zsrList[i].NAME); Email.To.Add(zsrAddr); } for (int i = 0; i < csrList.Count; i++) //循环添加抄送人邮箱地址对象 { MailAddress csrAddr = new MailAddress(csrList[i].EMAIL, csrList[i].NAME); Email.CC.Add(csrAddr); } } catch { return false; } Email.IsBodyHtml = true; Email.BodyEncoding = System.Text.Encoding.UTF8; Email.Body += mailBody; for (int i = 0; i < files.Length; i++) { System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(files[i]); Email.Attachments.Add(attachment); Email.Body += "<img src=\"cid:" + attachment.ContentId + "\"/>"; } Email.Priority = MailPriority.High; //邮件主题 Email.Subject = mailSubject; Email.SubjectEncoding = Encoding.GetEncoding(936); //邮件附件 for (int i = 0; i < arrFilePath.Count; i++) { string file = arrFilePath[i].ToString(); //附件路径 Attachment data = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet); // Add time stamp information for the file. System.Net.Mime.ContentDisposition disposition = data.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); // Add the file attachment to this e-mail message. Email.Attachments.Add(data); } SmtpClient Client = new SmtpClient("172.30.1.13"); Client.UseDefaultCredentials = false; Client.Credentials = new System.Net.NetworkCredential("shoa", "shnetweb.1234"); Client.DeliveryMethod = SmtpDeliveryMethod.Network; try { Client.Send(Email); } catch (SmtpFailedRecipientsException ex) { for (int i = 0; i < ex.InnerExceptions.Length; i++) { SmtpStatusCode status = ex.InnerExceptions[i].StatusCode; if (status == SmtpStatusCode.MailboxBusy || status == SmtpStatusCode.MailboxUnavailable) { //Response.Write("Delivery failed - retrying in 5 seconds."); System.Threading.Thread.Sleep(5000); Client.Send(Email); } } } catch (Exception ex) { return false; } finally { for (int i = 0; i < Email.Attachments.Count; i++) //释放占用excel资源 { Email.Attachments[i].Dispose(); } } return true; } #endregion