`
ljl_xyf
  • 浏览: 634794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#发送邮件时在正文中插入图片(邮件中直接包含图片)

    博客分类:
  • c#
阅读更多

#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.Body +="<br><font color=red>400电话 受理中心欢迎您的光临,网址:http://www.my400800.cn </a>";
            }
            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
分享到:
评论

相关推荐

    实现C#中邮件发送

    在C#编程中,发送邮件是一项常见的任务,尤其在用户验证、通知服务或者客户服务中扮演着重要角色。本项目提供了一个简洁的示例,通过一个简单的按钮操作来演示如何实现邮件发送功能,以验证用户的密码或账户信息。...

    c#发送电子邮件的源码

    例如,`&lt;a&gt;`标签用于创建超链接,`&lt;img&gt;`标签用于插入图片。 为了在邮件正文中嵌入图片,我们可以使用`LinkedResource`类。创建`LinkedResource`实例时,需要提供图片文件的本地路径,然后通过`ContentId`属性为其...

    基于C#的JMAIL邮件系统,方便实用

    总的来说,基于C#的JMAIL邮件系统为开发者提供了一种高效、易用的邮件发送解决方案,适用于各种需要发送邮件的应用场景,如企业内部通信、客户通知、自动提醒等。通过深入学习和实践,开发者可以进一步掌握邮件系统...

    发送电子邮件

    可以包括`&lt;p&gt;`标签用于段落,`&lt;a&gt;`标签用于链接,`&lt;img&gt;`标签插入图片,`&lt;style&gt;`标签定义样式等。确保HTML代码符合电子邮件的限制,因为一些邮件客户端可能对HTML有严格的过滤。 4. **MIME类型**:在发送HTML邮件...

    C# Email发送邮件 对方打开邮件可获得提醒

    本篇文章将详细讲解如何使用C#实现发送邮件的功能,并且在对方打开邮件时能收到通知。这种功能通常通过请求邮件回执(Read Receipt)来实现。 首先,我们需要引入System.Net.Mail命名空间,该命名空间包含了处理...

    winform邮箱发送源码 可在线编辑附件并发送源码

    在这个场景中,"winform邮箱发送源码 可在线编辑附件并发送源码"是一个针对WinForm应用的开发资源,允许用户在程序内编辑邮件内容,并附带附件进行发送。这个功能对于那些需要集成邮件服务的WinForm应用来说非常实用...

    VBnet、C#、VS、.net,做邮箱读写需要的插件

    标题中的“VBnet、C#、VS、...// 发送邮件 client.Send(mail); ``` 以上就是使用VB.NET、C#、VS、.NET和Spire.Email组件进行邮箱读写的基本介绍。开发者可以根据实际需求,结合这个组件来构建高效、稳定的邮件系统。

    非常实用的c#开发帮助类.zip

    "非常实用的c#开发帮助类.zip"这个压缩包很可能包含了一些C#开发者在日常工作中经常需要用到的工具类。下面我们将详细探讨这些可能包含的知识点。 首先,我们可以推测"CommonDAL"可能代表"公共数据访问层",这是一...

    c# mail system

    9. **用户界面设计**: 虽然描述中未明确指出,但构建邮件系统通常会涉及UI设计,如使用WPF或WinForms创建发送邮件的界面,包括输入框、按钮、选择文件的对话框等。 10. **邮件模板**: 对于频繁发送格式化的邮件,...

    C#寄e-mail內加圖

    为了在邮件正文中插入图片,我们需要使用AlternateView和LinkedResource类。首先,创建一个AlternateView对象,它是MailMessage的视图容器,可以包含HTML或者其他非文本内容。然后,用LinkedResource类来处理图片,...

    WS.Email.rar

    在本例中,"WS.Email.rar"是一个压缩包文件,其中包含了一个使用C#实现的邮件发送系统代码。这个系统不仅能够发送文本邮件,还支持添加附件和在邮件内容中嵌入图片,这在企业级应用中非常常见,例如自动化报告发送。...

    C#使用自带的email组件发送邮件的方法

    首先,发送邮件的关键在于使用SmtpClient类,它是C#中处理SMTP(简单邮件传输协议)的类,负责将邮件发送到邮件服务器。以下是一个简单的邮件发送示例: ```csharp using System.Net; using System.Net.Mail; ...

    自动发邮件

    - 可以设置定时任务,如使用`schedule`库或者操作系统自带的cron job(在Linux系统中),来定时执行发送邮件的脚本。 2. **Java的SMTP邮件发送**: - 使用`java.util.Properties`配置SMTP服务器参数。 - 创建`...

    C#office类库

    3. **操作PowerPoint**:Aspose.Slides或SlideLibrary库使得在C#中创建和修改PowerPoint演示文稿成为可能,包括添加幻灯片、更改设计模板、插入图片和动画等。 4. **转换文件格式**:例如,可以使用Aspose.Cells将...

    C# 用ASPOSEdll组件包

    例如,你可以用C#代码来生成新的文档,插入文本、图片,设置样式,甚至执行复杂的公式计算。 2. 表格处理:对于Excel文件,ASPOSEdll支持读取、修改和创建新的电子表格,执行公式计算,处理图表,以及合并和拆分...

    Sending the contents of a webpage with images as an HTML mail

    2. **嵌入式图片**:在HTML邮件中插入图片通常有三种方法: - **Base64编码**:将图片转换为Base64字符串,并在`&lt;img&gt;`标签的`src`属性中直接引用。这样可以避免因外部链接失效导致的图片无法显示问题。 - **链接...

    c#开发案例.rar

    在IT行业中,C#是一种广泛使用的面向对象的编程语言,尤其在软件开发领域,它具有高效、稳定且功能丰富的特点。本案例集“c#开发案例.rar”主要涵盖了以下几个核心知识点,通过邮件收发、Socket通信、文件操作、...

    .NET C# Office组件编程实例

    .NET框架中的C#语言与Microsoft Office组件的集成是开发者常用的一种技术,特别是在处理与Office相关的自动化任务时。这个实例集合提供了C#编程中调用Office组件的多种应用场景,旨在帮助学习者深入理解如何利用C#...

    C#在VS2005_下的典型实例源码大全

    实例中可能包含错误处理的代码,帮助你在遇到问题时能够妥善应对。 3. 泛型:VS2005引入了泛型,使得代码更具有通用性。实例可能包括使用泛型集合、泛型方法等。 4. 枚举与委托:枚举用于定义一组相关值,委托则...

    198个经典C#WinForm实例源码

    C#提供了丰富的网络编程接口,实例中包含了HTTP请求、FTP上传下载、邮件发送等,帮助你构建能够访问互联网的程序。 八、数据库操作 数据库操作是数据存储的关键,实例展示了如何使用ADO.NET连接SQL Server、SQLite...

Global site tag (gtag.js) - Google Analytics