using System.Net;
using System.Net.Sockets;
using System.IO;
public TcpClient Server;
public NetworkStream NetStrm;
public StreamReader RdStrm;
publicstring Data;
publicbyte[] szData;
publicstring CRLF = "\r\n";
privatevoid Connect_Click(object sender, System.EventArgs e)
{
//将光标置为等待状态
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//用110端口新建POP3服务器连接
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 = "PASS "+ Password.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
//向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小
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());
}
}
using System.Net.Sockets;
using System.IO;
public TcpClient Server;
public NetworkStream NetStrm;
public StreamReader RdStrm;
publicstring Data;
publicbyte[] szData;
publicstring CRLF = "\r\n";
privatevoid Connect_Click(object sender, System.EventArgs e)
{
//将光标置为等待状态
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//用110端口新建POP3服务器连接
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 = "PASS "+ Password.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
//向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小
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());
}
}
解决方案 »
- 关于C#中正则表达式的问题
- C#读取appSettings为空
- c#开发的WINDOWS桌面程序可以进行反编译全部源代码?
- c#.net 与存储过程问题
- 求教高手!一个行转列的实际问题
- C#中网络编程的几个问题
- 大家好,请问哪里可以找到Twain接口帮助文档(twain_32.dll),急需,谢谢!
- C#中的类型转换问题,(Type)valuename和Convert.ToXXX有什么主要区别?
- 我的错在什么地方,请指教!!
- 如何使datagrid与sql或access数据庫相连
- 请问如何在WinForm下增加一个CheckBox列?(不绑定数据),解决立刻给分!
- 在调用outlook发邮件时,怎么样不让那些安全对话框显示出来??
{
//将光标置为等待状态
Cursor cr = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//向服务器发送QUIT命令从而结束和POP3服务器的会话
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;
}
{
//将光标置为等待状态
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();
}
//若BackupChBox未选中,则收取邮件后,删除保留在服务器上的邮件
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(InvalidOperationException err)
{
Status.Items.Add("Error: "+err.ToString());
}
}