中博教育南京中博培训学校招生官方网站

中博教育全国示范校区 全国就业基地 IT职业教育和谐品牌 软件工程师培训基地

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

时间:2013-05-11 16:12来源:未知 作者:中博IT教育 点击:

.Net使用SmtpClient发送邮件 从网上找了一个封装。Net的Smtp邮件发送的类 [csharp] class MailSender { private MailMessage mailMessage; private SmtpClient smtpClient; private string password;//发件人密码 /// /// 处审核

  .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);

  }

  }

  }

(责任编辑:中博IT教育)
本文标签:
分享到:
顶一下
(0)
0%
踩一下
(0)
0%
在线咨询
在线报名
  • 姓  名:*
  • 年  龄:*
  • 电  话:*
  • 地  址:*
  • 开班信息
  • 讲座试听
12-21java系统班限招
12-2java系统班限招
11-25java系统班热招
11-16网络营销班限招
10-30就业定制班热招

时 间:周日上午10:00
主 题:专业技术讲座
主讲人:中博教育技术讲师
电 话:025-84200066
说 明:限30人 电话订座