欢迎您访问北大青鸟昌平校区

400-870-7892

全国咨询热线

您现在所在位置:北大青鸟 >网络学院 >

.Net培训:.Net使用SmtpClient发送邮件

来源:北大青鸟昌平校区 | 更新时间:2017-08-01

  北大青鸟北京昌平校区老师解读:.Net使用SmtpClient发送邮件

  从网上找了一个封装。Net的Smtp邮件发送的类

  [csharp]

  class MailSender

  {

  private MailMessage mailMessage;

  private SmtpClient smtpClient;

  private string password;//发件人密码

  ///

  /// 处审核后类的实例

  ///

  /// 收件人地址

  /// 发件人地址

  /// 邮件正文

  /// 邮件的主题

  /// 发件人密码

  public MailSender(string To, string From, string Body, string Title, string Password)

  {

  mailMessage = new MailMessage();

  mailMessage.To.Add(To);

  mailMessage.From = new System.Net.Mail.MailAddress(From);

  mailMessage.Subject = Title;

  mailMessage.Body = Body;

  mailMessage.IsBodyHtml = true;

  mailMessage.BodyEncoding = System.Text.Encoding.UTF8;

  mailMessage.Priority = System.Net.Mail.MailPriority.Normal;

  this.password = Password;

  }

  ///

  /// 添加附件

  ///

  public void Attachments(string Path)

  {

  string[] path = Path.Split(',');

  Attachment data;

  ContentDisposition disposition;

  for (int i = 0; i < path.Length; i++)

  {

  data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件

  disposition = data.ContentDisposition;

  disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期

  disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期

  disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期

  mailMessage.Attachments.Add(data);//添加到附件中

  }

  }

  ///

  /// 异步发送邮件

  ///

  ///

  public void SendAsync(SendCompletedEventHandler CompletedMethod)

  {

  if (mailMessage != null)

  {

  smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mailMessage.From.Host;

  smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件

  smtpClient.SendAsync(mailMessage, mailMessage.Body);

  }

  }

  ///

  /// 发送邮件

  ///

  public void Send()

  {

  if (mailMessage != null)

  {

  smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mailMessage.From.Host;

  smtpClient.Send(mailMessage);

  }

  }

  }

  class MailSender

  {

  private MailMessage mailMessage;

  private SmtpClient smtpClient;

  private string password;//发件人密码

  ///

  /// 处审核后类的实例

  ///

  /// 收件人地址

  /// 发件人地址

  /// 邮件正文

  /// 邮件的主题

  /// 发件人密码

  public MailSender(string To, string From, string Body, string Title, string Password)

  {

  mailMessage = new MailMessage();

  mailMessage.To.Add(To);

  mailMessage.From = new System.Net.Mail.MailAddress(From);

  mailMessage.Subject = Title;

  mailMessage.Body = Body;

  mailMessage.IsBodyHtml = true;

  mailMessage.BodyEncoding = System.Text.Encoding.UTF8;

  mailMessage.Priority = System.Net.Mail.MailPriority.Normal;

  this.password = Password;

  }

  ///

  /// 添加附件

  ///

  public void Attachments(string Path)

  {

  string[] path = Path.Split(',');

  Attachment data;

  ContentDisposition disposition;

  for (int i = 0; i < path.Length; i++)

  {

  data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件

  disposition = data.ContentDisposition;

  disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期

  disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期

  disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期

  mailMessage.Attachments.Add(data);//添加到附件中

  }

  }

  ///

  /// 异步发送邮件

  ///

  ///

  public void SendAsync(SendCompletedEventHandler CompletedMethod)

  {

  if (mailMessage != null)

  {

  smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mailMessage.From.Host;

  smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件

  smtpClient.SendAsync(mailMessage, mailMessage.Body);

  }

  }

  ///

  /// 发送邮件

  ///

  public void Send()

  {

  if (mailMessage != null)

  {

  smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mailMessage.From.Host;

  smtpClient.Send(mailMessage);

  }

  }

  }

  使用某些邮箱的时候会报错(如sohu):不允许使用邮箱名称,服务器响应为: xxx.需要设置单独的用户名,故修改了下,并做了一些优化。如下:

  [csharp]

  class MailSender

  {

  private readonly MailMessage mail;

  private readonly string password;//发件人密码

  private readonly string user;

  ///

  /// 处审核后类的实例

  ///

  /// 收件人地址

  /// 发件人地址

  /// 邮件正文

  /// 邮件的主题

  /// 发件人账号

  /// 发件人密码

  public MailSender(string to, string from, string body, string subject, string sendAccount, string sendPassword)

  {

  mail = new MailMessage();

  mail.To.Add(to);

  mail.From = new MailAddress(from);

  mail.Subject = subject;

  mail.Body = body;

  mail.IsBodyHtml = true;

  mail.BodyEncoding = System.Text.Encoding.UTF8;

  mail.Priority = MailPriority.Normal;

  this.password = sendPassword;

  this.user = sendAccount;

  }

  ///

  /// 添加附件

  ///

  public void Attachments(string path)

  {

  string[] pathes = path.Split(',');

  for (int i = 0; i < pathes.Length; i++)

  {

  var data = new Attachment(pathes[i], MediaTypeNames.Application.Octet);//实例化附件

  var disposition = data.ContentDisposition;

  disposition.CreationDate = System.IO.File.GetCreationTime(pathes[i]);//获取附件的创建日期

  disposition.ModificationDate = System.IO.File.GetLastWriteTime(pathes[i]);//获取附件的修改日期

  disposition.ReadDate = System.IO.File.GetLastAccessTime(pathes[i]);//获取附件的读取日期

  mail.Attachments.Add(data);//添加到附件中

  }

  }

  ///

  /// 异步发送邮件

  ///

  ///

  public void SendAsync(SendCompletedEventHandler CompletedMethod)

  {

  if (mail != null)

  {

  var smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mail.From.Host;

  smtpClient.SendCompleted += CompletedMethod;//注册异步发送邮件完成时的事件

  smtpClient.SendAsync(mail, mail.Body);

  }

  }

  ///

  /// 发送邮件

  ///

  public void Send()

  {

  if (mail != null)

  {

  var smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mail.From.Host;

  smtpClient.Send(mail);

  }

  }

  }

  class MailSender

  {

  private readonly MailMessage mail;

  private readonly string password;//发件人密码

  private readonly string user;

  ///

  /// 处审核后类的实例

  ///

  /// 收件人地址

  /// 发件人地址

  /// 邮件正文

  /// 邮件的主题

  /// 发件人账号

  /// 发件人密码

  public MailSender(string to, string from, string body, string subject, string sendAccount, string sendPassword)

  {

  mail = new MailMessage();

  mail.To.Add(to);

  mail.From = new MailAddress(from);

  mail.Subject = subject;

  mail.Body = body;

  mail.IsBodyHtml = true;

  mail.BodyEncoding = System.Text.Encoding.UTF8;

  mail.Priority = MailPriority.Normal;

  this.password = sendPassword;

  this.user = sendAccount;

  }

  ///

  /// 添加附件

  ///

  public void Attachments(string path)

  {

  string[] pathes = path.Split(',');

  for (int i = 0; i < pathes.Length; i++)

  {

  var data = new Attachment(pathes[i], MediaTypeNames.Application.Octet);//实例化附件

  var disposition = data.ContentDisposition;

  disposition.CreationDate = System.IO.File.GetCreationTime(pathes[i]);//获取附件的创建日期

  disposition.ModificationDate = System.IO.File.GetLastWriteTime(pathes[i]);//获取附件的修改日期

  disposition.ReadDate = System.IO.File.GetLastAccessTime(pathes[i]);//获取附件的读取日期

  mail.Attachments.Add(data);//添加到附件中

  }

  }

  ///

  /// 异步发送邮件

  ///

  ///

  public void SendAsync(SendCompletedEventHandler CompletedMethod)

  {

  if (mail != null)

  {

  var smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mail.From.Host;

  smtpClient.SendCompleted += CompletedMethod;//注册异步发送邮件完成时的事件

  smtpClient.SendAsync(mail, mail.Body);

  }

  }

  ///

  /// 发送邮件

  ///

  public void Send()

  {

  if (mail != null)

  {

  var smtpClient = new SmtpClient();

  smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

  smtpClient.Host = "smtp." + mail.From.Host;

  smtpClient.Send(mail);

  }

  }

  }

  • 北京哪个电脑培训学校好?

    北京哪个电脑培训学校好?在这个网络时代,很多人都想通过学好电脑知识来找一份工资待遇好一点的工作。由于电脑知识比较广泛,需要学习的方向很多,因此建议学电脑的人选择...详细

  • 北大青鸟计算机学校有什么优势

    现在的行业竞争非常激烈,要想学到真知识和过硬技能,就快快到最具优势的北大青鸟昌平校区学习吧。预知详情,请点击下文...详细

  • 北大青鸟计算机专业的就业方向

    想拿高薪,想拥有更好更宽广的就业机会吗?北大青鸟昌平校区网络营销专业圆你就业梦。...详细

  • 北京北大青鸟网络工程师就业好吗?

    张磊同学:老师好,我是我今年高中毕业,自己想找个行业技术培训的地方比较好好培训自己为的是将来自己能用有个好的工作,听问北京北京 北大青鸟 不错,所以我想问问 北京...详细

  • 北京北大青鸟哪家好

    北京北大青鸟哪家好?北大青鸟昌平校区从开办以来,已经为社会输送了大批的人才,并受到各个企业的赞誉,学校内先进的课程体系,强劲的师资力量,优秀的办学模式都是促进学员成才...详细

  • 北大青鸟benet5.0网络工程师课程特点

    BENET网络工程师培训 BENET网络工程师培训--培养目标 : BENET产品定位的目标是就业岗位(网络工程师)的核心技能点。作为产品的培养目标,即培养学员能够纵横职场的6大就...详细

  • 北大青鸟学校哪个好?

    很多学生在选择 北大青鸟 学校的时候,都要对比一下看看 北大青鸟学校 哪个好? 北大青鸟学校哪个好?不能听人说,而要自己去考察,北大青鸟学校哪个好?只有亲自来看过的人才...详细

  • 北大青鸟学费多少?有没有什么收费的标准?

    老师您好!我是一名高中生,因为文化课成绩不是很好,所以我对考重点大学是没太大希望的,所以想学计算机技术,靠自己的能力挣钱,不知道北大青鸟学费是什么?有没有什么收...详细

  • 关于北大青鸟学费是多少?学校怎么样?

    我是北大青鸟的一名在读生、关于 北大青鸟学费多少 的问题,相信是所有想来北大青鸟的人都关心的问题。很多人在没来之前应该已经了解了很多关于学IT方面的学校、会觉得北大...详细

  • 北大青鸟学校怎么样、学费是多少?

    吉勇哲同学问:你好老师您好,我由于成绩不理想,没能考上大学。但是我对电脑、网络这方面比较感兴趣,所以我想学习电脑技术。听说北大青鸟还不错,所以我想来北大青鸟学习...详细

  • IT界里“云”浮动

    IT技术不断的发展,IT技术人也要与之相适应不断的升级和进化,因此在IT人进化发展的历史上,每一个新技术也成了原始结绳记事中一个一个的结。他们的命运也将要随着这一个个...详细

  • 价格决定成败

    价格规律是随着市场的变化而变化的,但有时也会违背价格规律,走入歧途。价格是表示了一个商品或服务的价值,要相互匹配才行。但是现在涨价已成为流行趋势,老百姓生活的必...详细

  • 北大青鸟:通讯方式的转变

    前几天突然心血来潮,想给远方的同学写一封信,信是很快就写好了,可是遇到了一个难题。买信封让我跑了好远的路,都有点想要放弃了,心想,再走一家超市,如果还没有,我就...详细

  • 北大青鸟:就业实践最重要

    在二十世纪六、七十年代中国的文化大革命运动后期,中国共产党组织大量城市知识青年离开城市,在农村定居和劳动的政治运动,这就是我们俗称的上山下乡运动。那个年代的知识...详细

  • 走自己个性化的路

    最近看到有篇报道《朝鲜禁止模仿韩服饰,严格管制宋惠乔发型》。朝鲜当局对居民哈韩行为实行严格管制,禁止模仿韩国服饰、化妆方法,以及发型。朝鲜当局下达指示严管韩国伤...详细

  • 简简单单就好

    人们都在追求成功,而成功有时离我们其实很近,就看你是如何抓住它的。简简单单的成功是最有效果的。 最近我看到这样的小故事,说的就是简单的生活,更容易获得成功。 小鸟...详细

  • 北大青鸟:烦恼终将会过去

    人的一生没有谁会是一番风顺的,坎坷是必经之路,它就像是我们的人生的一味调料,没有它,就会枯燥无味,些许的点缀倒是一个人生的乐趣。 每一个大学生都想在毕业的时候找...详细

  • 2010年十大IT热点

    2010年对整个IT业来说,注定并不太平。在这一年中,我们耳闻目睹了很多大事,也亲身经历了许多大事。这些大事,除了能带给我们情感上的悲与喜、爱与恨之外,还同样可带给我...详细

  • 决定求职成败的关键因素

    企业招聘时看重的并不是你来自哪所名牌大学,背景怎样,而是你的商业价值有多少!比如:你的学习能力的强弱、实践经历的多少,以及你为此所做的各项准备等。靠毕业证就能找...详细

  • 选择IT电脑培训机构的八大标准

    IT电脑培训机构的好坏对求学者的成长与出路有很大影响,现在市场上的IT电脑培训学校也越来越多,那如何选择一个好的学校,适合自己的学校呢?大家可以参照以下八个标准。 ...详细

热门话题

在线客服

ONLINE SERVICE

联系电话

18210170187

返回顶部