@#¥%……

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

public TcpClient Server;

public NetworkStream NetStrm;

public StreamReader  RdStrm;

public string Data;

public byte[] szData;

public string CRLF = "\r\n";

 

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());

}

 

}

posted on 2015-05-12 16:37  yufan27209  阅读(335)  评论(0编辑  收藏  举报