c#接收电子邮件类

 

using  System;
using  System.Net.Sockets;
using  System.Net;
using  System.Security.Cryptography;
using  System.IO; 
                           
/
                            //  类名:Pop3          //
                           
//  功能:接收电子邮件           //
                            / 

namespace  ZTSX.Email
{
 
/// <summary>
 
/// Pop3 的摘要说明。
 
/// </summary>

 public class Pop3
 
{
  
private string mstrHost     = null;  //主机名称或IP地址
  private int mintPort     = 110;  //主机的端口号(默认为110)
  private TcpClient mtcpClient   = null;  //客户端
  private NetworkStream mnetStream  = null;  //网络基础数据流
  private StreamReader m_stmReader  = null;  //读取字节流
  private string mstrStatMessage   = null;  //执行STAT命令后得到的消息(从中得到邮件数) 

  
/// <summary>
  
/// 构造函数
  
/// </summary>
  
/// <remarks>一个邮件接收对象</remarks>

  public Pop3()
  
{
  }
 

  
/// <summary>
  
/// 构造函数
  
/// </summary>
  
/// <param name="host">主机名称或IP地址</param>

  public Pop3(string host)
  
{
   mstrHost 
= host;
  }
 

  
/// <summary>
  
/// 构造函数
  
/// </summary>
  
/// <param name="host">主机名称或IP地址</param>
  
/// <param name="port">主机的端口号</param>
  
/// <remarks>一个邮件接收对象</remarks>

  public Pop3(string host,int port)
  
{
   mstrHost 
= host;
   mintPort 
= port;
  }
 

  
属性 

  
私有方法 

  
/// <summary>
  
/// 与主机建立连接
  
/// </summary>
  
/// <returns>
  
/// 类型:布尔
  
/// 内容:连接结果(true为连接成功,false为连接失败)
  
/// </returns>
  
/// <remarks>与主机建立连接</remarks>

  public bool Connect()
  
{
   
if(mstrHost == null)
    
throw new Exception("请提供SMTP主机名称或IP地址!");
   
if(mintPort == 0)
    
throw new Exception("请提供SMTP主机的端口号");
   
try
   
{
    mtcpClient 
= new TcpClient(mstrHost,mintPort);
    mnetStream 
= mtcpClient.GetStream();
    m_stmReader 
= new StreamReader(mtcpClient.GetStream()); 

    
string strMessage = m_stmReader.ReadLine();
    
if(CheckCorrect(strMessage,"+OK"== true)
     
return true;
    
else
     
return false;
   }

   
catch(SocketException exc)
   
{
    
throw new Pop3Exception(exc.ToString());
   }

   
catch(NullReferenceException exc)
   
{
    
throw new Pop3Exception(exc.ToString());
   }

  }
 

  
Pop3命令 


  
/// <summary>
  
/// 收取邮件    
  
/// </summary>
  
/// <param name="user">用户名</param>
  
/// <param name="password">口令</param>
  
/// <returns>
  
/// 类型:字符串数组
  
/// 内容:解码前的邮件内容
  
/// </returns>
  
///<remarks>收取邮箱中的未读邮件</remarks>

  public string[] Receive(string user,string password)
  
{
   
try
   
{
    
return ReceiveMail(user,password);
   }

   
catch(Pop3Exception exc)
   
{
    
throw new Pop3Exception(exc.ToString());
   }

  }
 

  
/// <summary>
  
/// 断开所有与服务器的会话
  
/// </summary>
  
/// <remarks>断开所有与服务器的会话</remarks>

  public void DisConnect()
  
{
   
try
   
{
    Quit();
    
if(m_stmReader != null)
     m_stmReader.Close();
    
if(mnetStream != null)
     mnetStream.Close();
    
if(mtcpClient != null)
     mtcpClient.Close();
   }

   
catch(SocketException exc)
   
{
    
throw new Pop3Exception(exc.ToString());
   }

  }
 

  
/// <summary>
  
/// 删除邮件
  
/// </summary>
  
/// <param name="number">邮件号</param>

  public void DeleteMail(int number)
  
{
   
//删除邮件
   int iMailNumber = number + 1;
   
if(DELE(iMailNumber).Equals("Error"))
    
throw new Pop3Exception("删除第" + iMailNumber.ToString() + "时出现错误!");
  }
 

 }

}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值