⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form2.cs

📁 C#写的Email邮件客户端程序skyemail.
💻 CS
📖 第 1 页 / 共 2 页
字号:
			{
				// initialization
				NetStrm = Server.GetStream();
				RdStrm= new StreamReader(Server.GetStream());
				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)
			{
				NetStrm.Close();
				RdStrm.Close();
				state=connect_state.disc ;
			}
			else
			{
				temp="Not Connected.";
			}
			return(temp);
		}

		private void issue_command(string command)
		{
			Data= command + CRLF;
			szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
			NetStrm.Write(szData,0,szData.Length);
		}

		private string read_single_line_response()
		{
			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()
		{
			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 string read_multi_line_response1()
		{
			string temp="";
			string szTemp;
			try
			{
				RdStrm.ReadLine();
				szTemp = RdStrm.ReadLine();
				was_pop_error(szTemp);                
				if(!error) 
				{
					while(szTemp!=".")
					{
						temp += szTemp+CRLF;
						szTemp = RdStrm.ReadLine();
					}
				}
				else
				{
					temp=szTemp;
				}
				temp=temp+CRLF+"."+CRLF;
				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 ("-"))
			{
				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 (userpwd !=null)
				{
					issue_command ("PASS " + userpwd);
					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)
		{
			userpwd=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_response1();
			}
			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 (username !=null)
				{   
					issue_command("USER "+ username);
					temp=read_single_line_response();
				}
				else
				{   //no user has been specified
					temp="No User specified.";
				}
			}
			return(temp);
		}
		public string USER(string user_name)
		{
			username=user_name;  //put the user name in the appropriate propertity
			return(USER());  //call USER with no arguements
		}
        #endregion
	
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -