选择显示字体大小

asp.net读取pop3邮件的操作

namespace pop3client
{
  using system.io ;
  using system.net;
  using system.net.sockets ;
  //please note that all code is copyright 2002 by william j dean
  public class pop3client
  {
  public enum connect_state {disc,authorization,transaction,update};

  public string user;
  public string pwd;
  public string pop;
  public bool error;
  public connect_state state=connect_state.disc ;

  //borrowed from agus kurniawan's article:"retrieve mail from a pop3 server using c#" at http://www.codeproject.com/csharp/popapp.asp
  private tcpclient server;
  private.networkstream.netstrm;
  private streamreader rdstrm;
  private string data;
  private byte[] szdata;
  private string crlf = "\r\n"; 

  public pop3client()
  {
  //nothing to do..just create to object 
  }

  public pop3client(string pop_server,string user_name,string password)
  {
  //put the specied server (pop_server), user (user_name) and password (password)
  //into the appropriate properties.
  pop=pop_server;
  user=user_name;
  pwd=password;
  }

  #region utility methods, some public, some private
  public string connect (string pop_server)
  {
  pop=pop_server;  //put the specified server into the pop property
  return(connect()); //call the connect method
  }
  public string connect()
  {
  //initialize to the pop server. this code snipped "borrowed"
  //with some modifications...
  //from the article "retrieve mail from a pop3 server using c#" at
  //www.codeproject.com by agus kurniawan
  //http://www.codeproject.com/csharp/popapp.asp

  // create server with port 110
  server = new tcpclient(pop,110);  
 
  try
  {
  // initialization
 .netstrm = server.getstream();
  rdstrm= new streamreader(server.getstream());

  //the pop session is now in the authorization state
  state=connect_state.authorization ;
  return(rdstrm.readline ());
  }  
  catch(invalidoperationexception err)
  {
  return("error: "+err.tostring());
  }

  }
  private string disconnect ()
  {
  string temp="disconnected successfully.";
  if(state !=connect_state.disc)
  {

  //close connection
 .netstrm.close();
  rdstrm.close();
  state=connect_state.disc ;
  }
  else
  {
  temp="not connected.";
  }
  return(temp);
  }

  private void issue_command(string command)
  {
  //send the command to the pop server. this code snipped "borrowed"
  //with some modifications...
  //from the article "retrieve mail from a pop3 server using c#" at
  //www.codeproject.com by agus kurniawan
  //http://www.codeproject.com/csharp/popapp.asp
  data= command + crlf;
  szdata = system.text.encoding.ascii.getbytes(data.tochararray());
 .netstrm.write(szdata,0,szdata.length);

  }
  private string read_single_line_response()
  {
  //read the response of the pop server. this code snipped "borrowed"
  //with some modifications...
  //from the article "retrieve mail from a pop3 server using c#" at
  //www.codeproject.com by agus kurniawan
  //http://www.codeproject.com/csharp/popapp.asp
  string temp;
  try
  {
  temp = rdstrm.readline();
  was_pop_error(temp);  
  return(temp);
  }
  catch(invalidoperationexception err)
  {
  return("error in read_single_line_response(): " + err.tostring ()) ;
  }

  }
  private string read_multi_line_response()
  {
  //read the response of the pop server. this code snipped "borrowed"
  //with some modifications...
  //from the article "retrieve mail from a pop3 server using c#" at
  //www.codeproject.com by agus kurniawan
  //http://www.codeproject.com/csharp/popapp.asp
  string temp="";
  string sztemp;

  try
  {
  sztemp = rdstrm.readline();
  was_pop_error(sztemp);  
  if(!error)
  {
 
  while(sztemp!=".")
  {
  temp += sztemp+crlf;
  sztemp = rdstrm.readline();
  }
  }
  else
  {
  temp=sztemp;
  }
  return(temp);
  }
  catch(invalidoperationexception err)
  {
  return("error in read_multi_line_response(): " + err.tostring ());
  }
  }
  private void was_pop_error(string response)
  {
  //detect if the pop server that issued the response believes that
  //an error has occured.

  if(response.startswith ("-"))
  {
  //if the first character of the response is "-" then the
  //pop server has encountered an error executing the last
  //command send by the client
  error=true;
  }
  else
  {
  //success
  error=false;
  }
  }
  #endregion
  #region pop commands
  public string dele(int msg_number)
  {
  string temp;
 
  if (state != connect_state.transaction )
  {
  //dele is only valid when the pop session is in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  issue_command("dele " + msg_number.tostring ());
  temp=read_single_line_response();  
  }
  return(temp);
  }

  public string list()
  {
  string temp="";
  if (state != connect_state.transaction )
  {
  //the pop command list is only valid in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  issue_command ("list");
  temp=read_multi_line_response();
  }
  return(temp);  
  }

  public string list(int msg_number)
  {
  string temp="";

  if (state != connect_state.transaction )
  {
  //the pop command list is only valid in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  issue_command ("list " + msg_number.tostring ());
  temp=read_single_line_response(); //when the message number is supplied, expect a single line response
  }
  return(temp);

  }

  public string noop()
  {
  string temp;
  if (state != connect_state.transaction )
  {
  //the pop command noop is only valid in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  issue_command ("noop");
  temp=read_single_line_response();

  }
  return(temp);

  }
  public string pass()
  {
  string temp;
  if (state != connect_state.authorization)
  {
  //the pop command pass is only valid in the authorization state
  temp="connection state not = authorization";
  }
  else
  {
  if (pwd !=null)
  {
  issue_command ("pass " + pwd);
  temp=read_single_line_response();

  if (!error)
  {
  //transition to the transaction state
  state=connect_state.transaction;
  }
  }
  else
  {
  temp="no password set.";
  }
  }
  return(temp);
  }
  public string pass(string password)
  {
  pwd=password;  //put the supplied password into the appropriate property
  return(pass()); //call pass() with no arguement
  }

  public string quit()
  {
  //quit is valid in all pop states

  string temp;
  if (state !=connect_state.disc)
  {
  issue_command ("quit");
  temp=read_single_line_response();
  temp += crlf + disconnect();
 
  }
  else
  {
  temp="not connected.";
  }
  return(temp);

  }
  public string retr (int msg)
  {
  string temp="";
  if (state != connect_state.transaction )
  {
  //the pop command retr is only valid in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  // retrieve mail with number mail parameter
  issue_command ("retr "+ msg.tostring ());
  temp=read_multi_line_response();
  }
  return(temp);

  }

  public string rset()
  {
  string temp;
  if (state != connect_state.transaction )
  {
  //the pop command stat is only valid in the transaction state
  temp="connection state not = transaction";
  }
  else
  {
  issue_command("rset");
  temp=read_single_line_response();
  }
  return(temp);

  }

  public string stat()
  {
  string temp;
  if (state==connect_state.transaction)
  {
  issue_command("stat");
  temp=read_single_line_response();

  return(temp);
  }
  else

  {
  //the pop command stat is only valid in the transaction state
  return ("connection state not = transaction");
  }
  }  

  public string user()
  {
  string temp;
  if (state != connect_state.authorization)
  {
  //the pop command user is only valid in the authorization state
  temp="connection state not = authorization";
  }
  else
  {
  if (user !=null)
  { 
  issue_command("user "+ user);
  temp=read_single_line_response();
  }
  else
  {  //no user has been specified
  temp="no user specified.";
  }
  }
  return(temp);
  }

  public string user(string user_name)
  {
  user=user_name; //put the user name in the appropriate propertity
  return(user()); //call user with no arguements
  }
  #endregion
  }

}

  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons