第一步:新建一个windows应用程序,命名为:Mail,并为生成的窗体添加相应的控件,效果图如下:
第二步,为控件添加相应的代码事件:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO;
namespace Mail { public partial class Form1 : Form { public TcpClient Server; public NetworkStream NetStrm; public StreamReader RdStrm; public string Data; public byte[] szData; public string CRLF = "\r\n"; public Form1() { InitializeComponent(); }
private void Connect_Click(object sender, EventArgs e) { Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; Server = new TcpClient(Popserver.Text,110); Status.Items.Clear(); try { NetStrm = Server.GetStream(); RdStrm = new StreamReader(Server.GetStream()); Status.Items.Add(RdStrm.ReadLine()); Data = "USER" + Username.Text + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData, 0, szData.Length); Status.Items.Add(RdStrm.ReadLine()); Data = "STAT" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData, 0, szData.Length); Status.Items.Add(RdStrm.ReadLine()); Connect.Enabled = false; Disconnect.Enabled = true; Retrieve.Enabled = true; Cursor.Current = cr; } catch (InvalidOperationException err) { Status.Items.Add("ERROR:" + err.ToString()); } }
private void Disconnect_Click(object sender, EventArgs e) { Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; Data = "QUIT" + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData, 0, szData.Length); Status.Items.Add(RdStrm.ReadLine()); NetStrm.Close(); RdStrm.Close(); Connect.Enabled = true; Disconnect.Enabled = false; Retrieve.Enabled = false; Cursor.Current = cr; }
private void Retrieve_Click(object sender, EventArgs e) {
Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; String szTemp; Message.Clear(); try { Data = "RETR" + Mailnum.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(); } if (BackupChBox.Checked == false) {
Data = "DELE" + Mailnum.Text + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData, 0, szData.Length); Status.Items.Add(RdStrm.ReadLine()); } } else { Status.Items.Add(szTemp); } Cursor.Current = cr; } catch (InvalidExpressionException err) { Status.Items.Add("ERROR" + err.ToString()); } } } } 说明:这只是一个简单的通讯编程,实现的功能也只是收取邮件,发送邮件功能的实现,需要等待......
|
请发表评论