验证用户邮件帐号及密码

public TcpClient Server;

public NetworkStream NetStrm;

public StreamReader  RdStrm;

public string Data;

public byte[] szData;

public string CRLF = " ";

private void ConnectBtn_Click(object sender, System.EventArgs e)

{

// change cursor into wait cursor

Cursor cr = Cursor.Current;

Cursor.Current = Cursors.WaitCursor;

// create server POP3 with port 110

Server = new TcpClient(POPServ.Text,110);

Status.Items.Clear();

try

{

// initialization

NetStrm = Server.GetStream();

RdStrm= new StreamReader(Server.GetStream());

Status.Items.Add(RdStrm.ReadLine());

// Login Process

Data = "USER "+ User.Text+CRLF;

szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());

NetStrm.Write(szData,0,szData.Length);

Status.Items.Add(RdStrm.ReadLine());

Data = "PASS "+ Passw.Text+CRLF;

szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());

NetStrm.Write(szData,0,szData.Length);

Status.Items.Add(RdStrm.ReadLine());

// Send STAT command to get information ie: number of mail and size

Data = "STAT"+CRLF;

szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());

NetStrm.Write(szData,0,szData.Length);

Status.Items.Add(RdStrm.ReadLine());

// change enabled - disabled button

ConnectBtn.Enabled = false;

DisconnectBtn.Enabled = true;

RetrieveBtn.Enabled = true;

// back to normal cursor

Cursor.Current = cr;

}

catch(InvalidOperationException err)

{

Status.Items.Add("Error: "+err.ToString());

}

}

private void DisconnectBtn_Click(object sender, System.EventArgs e)

{

// change cursor into wait cursor

Cursor cr = Cursor.Current;

Cursor.Current = Cursors.WaitCursor;

// Send QUIT command to close session from POP server

Data = "QUIT"+CRLF;

szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());

NetStrm.Write(szData,0,szData.Length);

Status.Items.Add(RdStrm.ReadLine());

//close connection

NetStrm.Close();

RdStrm.Close();

// change enabled - disabled button

ConnectBtn.Enabled = true;

DisconnectBtn.Enabled = false;

RetrieveBtn.Enabled = false;

// back to normal cursor

Cursor.Current = cr;

}

private void RetrieveBtn_Click(object sender, System.EventArgs e)

{

            double x = 0.00;

            Task.WaitAll(()=> new { x = GetValueAsync()}, 1000);

// change cursor into wait cursor

Cursor cr = Cursor.Current;

Cursor.Current = Cursors.WaitCursor;

string szTemp;

Message.Clear();

try

{

// retrieve mail with number mail parameter

Data = "RETR "+ Number.Text+CRLF;

szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());

NetStrm.Write(szData,0,szData.Length);

szTemp = RdStrm.ReadLine();

if(szTemp[0]!='-') 

{

                  

while(szTemp!=".")

{

Message.Text += szTemp+CRLF;

szTemp = RdStrm.ReadLine();

}

}

else

{

Status.Items.Add(szTemp);

}

// back to normal cursor

Cursor.Current = cr;

}

catch(InvalidOperationException err)

{

Status.Items.Add("Error: "+err.ToString());

}

}

原文地址:https://www.cnblogs.com/yufan27209/p/4497776.html