当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用c#写的smtp邮件发送类

ASP.NET
不同映射模式下的直线输出的效果问题
ASP.NET开发下的MVC设计模式的实现
ASP.NET编写应用程序的十大技巧
ASP.NET中使用AJAX的简单方法
ASP.NET MVC实现自己的视图引擎
认识asp.net会话状态
ASP.NET实现页面传值的几种方法
.NET中容易混淆的几组重要概念
详解.NET中的动态编译技术
如何使用ASP.Net加密Cookie
ASP.NET 2.0跨网页提交的三种方法
ASP.NET 2.0创建母版页引来的麻烦
.Net整合其他平台的一些探讨
ASP.NET编程经验技巧10则
最佳实践 ADO.NET实用经验无保留曝光
在.NET上执行多线程操作要考虑的两大因素
.Net开发 细说Visual Basic.Net
ASP.NET网络编程中经常用到的27个函数集
ASP.NET防止用户多次登录的方法
对ASP.NET MVC项目中的视图做单元测试

ASP.NET 中的 用c#写的smtp邮件发送类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 90 ::
收藏到网摘: n/a

//**********************Created by Chen**************************
using System;
using System.IO;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Collections.Specialized;
using KSN.Exceptions;
using KSN.Validate;
namespace KSN.Web.Mail
{
 /// <summary>
 /// 邮件内容
 /// </summary>
 public class MailMessage
 {
  private string sender=null;
  private StringCollection receivers=new StringCollection();
  private string subject="";
  private string xMailer="";
  private StringCollection attachments=new StringCollection();
  private MailEncodings mailEncoding=MailEncodings.GB2312;
  private MailTypes mailType=MailTypes.Html;
  private byte[] mailBody=null;
  /// <summary>
  /// 获取或设置发件人
  /// </summary>
  public string Sender
  {
   get{return this.sender;}
   set{this.sender=value;}
  }
  /// <summary>
  /// 获取收件人地址集合
  /// </summary>
  public StringCollection Receivers
  {
   get{return this.receivers;}
  }
  /// <summary>
  /// 获取或设置邮件主题
  /// </summary>
  public string Subject
  {
   get{return this.subject;}
   set{this.subject=value;}
  }
  /// <summary>
  /// 获取或设置邮件传送者
  /// </summary>
  public string XMailer
  {
   get{return this.xMailer;}
   set{this.xMailer=value;}
  }
  /// <summary>
  /// 获取附件列表
  /// </summary>
  public StringCollection Attachments
  {
   get{return this.attachments;}
  }
  /// <summary>
  /// 获取或设置邮件的编码方式
  /// </summary>
  public MailEncodings MailEncoding
  {
   get{return this.mailEncoding;}
   set{this.mailEncoding=value;}
  }
  /// <summary>
  /// 获取或设置邮件格式
  /// </summary>
  public MailTypes MailType
  {
   get{return this.mailType;}
   set{this.mailType=value;}
  }
  /// <summary>
  /// 获取或设置邮件正文
  /// </summary>
  public byte[] MailBody
  {
   get{return this.mailBody;}
   set{this.mailBody=value;}
  }
 }
 /// <summary>
 /// 邮件编码
 /// </summary>
 public enum MailEncodings
 {
  GB2312,
  ASCII,
  Unicode,
  UTF8
 }
 /// <summary>
 /// 邮件格式
 /// </summary>
 public enum MailTypes
 {
  Html,
  Text
 }
 /// <summary>
 /// smtp服务器的验证方式
 /// </summary>
 public enum SmtpValidateTypes
 {
  /// <summary>
  /// 不需要验证
  /// </summary>
  None,
  /// <summary>
  /// 通用的auth login验证
  /// </summary>
  Login,
  /// <summary>
  /// 通用的auth plain验证
  /// </summary>
  Plain,
  /// <summary>
  /// CRAM-MD5验证
  /// </summary>
  CRAMMD5
 }
 /// <summary>
 /// 邮件发送类
 /// </summary>
 public class KSN_Smtp
 {
  #region "member fields"
  /// <summary>
  /// 连接对象
  /// </summary>
  private TcpClient tc;
  /// <summary>
  /// 网络流
  /// </summary>
  private NetworkStream ns;
  /// <summary