.Net魔法堂:发个带附件的邮件

一、前言                          

  由于工作需要最近把邮件发送封装成WebService,现在把代码记录在此,以便日后查阅。

二、二话不说写代码                    

 private void _SendMail(string form, string pw, string subject, string[] to, string[] cc, string body, string attachmentName, byte[] attachment)
        {
            SmtpClient client = new SmtpClient(SMTP服务地址, SMTP服务端口);
            client.UseDefaultCredentials = true;
            client.Credentials = new NetworkCredential(form, pw); // 验证信息要与邮件发送源地址一致,否则无法发送
            client.DeliveryMethod = SmtpDeliveryMethod.Network;

            MailMessage message = new MailMessage();
            message.From = new MailAddress(form);
            foreach (string toItem in to)
            {
                message.To.Add(toItem);
            }
            foreach (string ccItem in cc)
            {
                message.CC.Add(ccItem);
            }
            message.Subject = subject;
            message.SubjectEncoding = Encoding.UTF8;
            message.Body = body;
            message.BodyEncoding = Encoding.UTF8;
            message.IsBodyHtml = true;
            message.Priority = MailPriority.High;

            Stream stream = null;
            Attachment data = null;
            try
            {
                if (attachment != null && attachment.Length > 0)
                {
                    stream = new MemoryStream(attachment);
                    data = new Attachment(stream, attachmentName, System.Net.Mime.MediaTypeNames.Application.Octet);
                    message.Attachments.Add(data);
                }
                client.Send(message);
            }
            finally
            {
                if (null != stream)
                {
                    stream.Close();
                }
            }
        }

三、三种发送方式                            

  发送邮件有三种方式:

  ①. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  直接通过远程SMTP服务器发送邮件

  ②. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;

  通过本机的IIS服务器的SMTP服务发送邮件(后续在研究什么配置SMTP服务器?)

  ③. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;

  将邮件发送到本机指定目录中,再通过其他手段(如通过FTP)发送到目的地

四、总结                                

 仅仅是实践后的爪印,没啥好总结的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C#

关于.NET参数传递方式的思考

    年关将近,整个人已经没有了工作和写作的激情,估计这个时候很多人跟我差不多,该相亲的相亲,该聚会喝酒的聚会喝酒,总之就是没有了干活的心思(我有很多想...

24990
来自专栏C#

关于.NET异常处理的思考

    年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java...

22950
来自专栏C#

高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)

  在项目开发中,尤其是企业的业务系统中,对文档的操作是非常多的,有时几乎给人一种错觉的是”这个系统似乎就是专门操作文档的“。毕竟现在的很多办公中大都是在PC端...

57060
来自专栏.NET开发那点事

.NET 配置文件简单使用

      当我们开发系统的时候要把一部分设置提取到外部的时候,那么就要用到.NET的配置文件了。比如我的框架中使用哪个IOC容器需要可以灵活的选择,那我就需要...

20090
来自专栏C#

DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。...

19990
来自专栏C#

C#的Process类调用第三方插件实现PDF文件转SWF文件

      在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并...

46360
来自专栏C#

DotNet程序集解析

    在.NET Framework框架中,程序集是重用、安全性以及版本控制的最小单元。程序集的定义为:程序集是一个或多个类型定义文件及资源文件的集合。...

20090
来自专栏C#

DotNet程序配置文件

    在实际的项目开发中,对于项目的相关信息的配置较多,在.NET项目中,我们较多的将程序的相关配置直接存储的.config文件中,例如web.conf...

25190
来自专栏C#

C#泛型方法解析

    C#2.0引入了泛型这个特性,由于泛型的引入,在一定程度上极大的增强了C#的生命力,可以完成C#1.0时需要编写复杂代码才可以完成的一些功能。但是作为开...

22090
来自专栏.NET开发那点事

IoC原理-使用反射/Emit来实现一个最简单的IoC容器

从Unity到Spring.Net,到Ninject,几年来陆陆续续用过几个IoC框架。虽然会用,但也没有一直仔细的研究过IoC实现的过程。最近花了点时间,下了...

253100

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励