}
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
}
}