.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)发送到目的地

目录
相关文章
|
存储 开发框架 前端开发
基于Lumisoft.NET组件,使用IMAP协议收取邮件
基于Lumisoft.NET组件,使用IMAP协议收取邮件
|
存储 .NET 开发框架
Asp.Net Core 快速邮件队列设计与实现
发送邮件几乎是软件系统中必不可少的功能,在Asp.Net Core 中我们可以使用MailKit发送邮件,MailKit发送邮件比较简单,网上有许多可以参考的文章,但是应该注意附件名长度,和附件名不能出现中文的问题,如果你遇到了这样的问题可以参考我之前写的这篇博客Asp.Net Core MailKit 完美附件(中文名、长文件名)。
1943 0
|
存储 网络安全 关系型数据库
.net Core1.0 邮件发送
  今天一天早,公司需要将之前的.net Core项目增加一个预处理机制,就是当程序出现异常后给我们的开发人员发送邮件,因为今天写些关于.netCore上发送邮件。   根据查阅资料发现在目前的Core1.
1013 0
|
.NET 索引 开发框架
|
.NET 开发框架 数据安全/隐私保护
用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还是很耐心的。
1591 0