Create a form as follow server name- text box user name- textbox password- textbox
(all textbox for input)
three button connect, Disconnect, Retrieve
Again three textbox for displaying connection status ,message and uentring mail number.
public TcpClient Server; public NetworkStream NetStrm; public StreamReader RdStrm; public string Data; public byte[] szData; public string CRLF = "\r\n";
Here's the code for when the Connect Button is clicked:
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()); } } Here's the code for when the Disconnect Button is clicked:
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; } Here's code when Retrieve Button clicked:
private void RetrieveBtn_Click(object sender, System.EventArgs e) { // 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; szTemp = RdStrm.ReadLine(); } } else { Status.Items.Add(szTemp); } // back to normal cursor
Cursor.Current = cr;
} catch(InvalidOperationException err) { Status.Items.Add("Error: "+err.ToString()); }
}
|
| Author: Sebastian 13 Jun 2008 | Member Level: Gold Points : 1 |
This is very informative. Thanks for sharing the details.
|