日期:2014-05-18  浏览次数:20507 次

ASP.NET & C# 发邮件的问题
平时经常会收到一些邮件,打开之后就直接是一个图文并茂的网页;我想问一下这个功能怎么实现?

我现在可以用MailMessage类实现发邮件的功能,但是只会发text页面;我知道发html的页面需要将MailMessage的属性IsBodyHtml设为true; 但是body部分应该怎么写呢? 



------解决方案--------------------
参考:
http://www.cnblogs.com/insus/articles/1689279.html
------解决方案--------------------
test.body="<html><body>.....</body></html>";
------解决方案--------------------

多种发邮件的方法,同步,异步。。(要发送HTML格式的,把HTML代码拼接好,赋给Body就可以)

http://www.cnblogs.com/aijun/archive/2011/03/15/1984558.html
------解决方案--------------------
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);
            }