我的程序是这样的:
/// <summary>
/// 关于接收件的代码
/// </summary> private void contactBtn_Click(object sender, EventArgs e)
{
//将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor;
try
{
//用110端口新建POP3服务器连接
client=new TcpClient(emailAddressText.Text.Trim(),110);
//获得TCP连接的网络流对象
netstream=client.GetStream();
//创建一个用于读取该网络流的StreamReader对象
streamReader=new StreamReader(netstream,System.Text.Encoding.UTF8);
//读取网络流中的一行响应信息
returnData=streamReader.ReadLine();
//将响应信息显示在状态栏中
statusText.Text="连接服务器:"+returnData+CRLF;
//验证用户名
sendData="USER"+emailUNameText.Text.Trim()+CRLF;
byteSendData=Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData,0,byteSendData.Length);
returnData=streamReader.ReadLine();
statusText.Text="验证用户名:"+returnData+CRLF; //向服务器发送STAT命令,取得邮件的数量和大小
sendData="STAT"+CRLF;
byteSendData=Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData,0,byteSendData.Length);
returnData=streamReader.ReadLine();
statusText.Text="邮件数量和大小:"+returnData+CRLF; //改变按钮的状态
contactBtn.Enabled=false;
disconnectBtn.Enabled=true;
receiveBtn.Enabled=true; //将光标置回原来的位置
//Cursor.Current=cr;
}
catch(Exception ex)
{
statusText.Text=ex.Message+CRLF;
}
} private void disconnectBtn_Click(object sender, EventArgs e)
{
//将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor; //向服务器发送QUIT命令,结束和POP3服务器的会话
sendData="QUIT"+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
statusText.Text = "断开连接:" + returnData + CRLF ; //关闭网络流和读取器
netstream.Close();
streamReader.Close(); //改变按钮的状态
contactBtn.Enabled = true;
disconnectBtn.Enabled = false;
receiveBtn.Enabled = false; //将光标置回原来的位置
//Cursor.Current = cr;
} private void recieveEmailBtn_Click(object sender, EventArgs e)
{
emailText.Clear(); //将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor;
try
{
//根据邮件编号从服务器获取相应邮件
sendData="RETR"+eamilNoText.Text.Trim()+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
//如果读取成功,则在“邮件信息”文本框中显示邮件的详细信息
if(returnData!="-")
{
//不断读取邮件内容,直到结束标志:英文句号
while(returnData!=".")
{
emailText.Text+=returnData;
returnData=streamReader.ReadLine();
}
//若backupCheckBox未选中,则收取邮件后,删除保留在服务器上的邮件
if(backupCheckBox.Checked==false)
{
sendData="DELE"+eamilNoText.Text.Trim()+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
statusText.Text="删除保留在服务器上的邮件:"+returnData+CRLF; }
}
else //如果读取失败,则在“状态”列表框中显示失败信息
{
statusText.Text="读取邮件:"+returnData+CRLF;
} //将光标置回原来的位置
//Cursor.Current = cr;
}
catch( Exception ex)
{
statusText.Text = ex.Message + CRLF ;
} }
}
/// <summary>
/// 关于接收件的代码
/// </summary> private void contactBtn_Click(object sender, EventArgs e)
{
//将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor;
try
{
//用110端口新建POP3服务器连接
client=new TcpClient(emailAddressText.Text.Trim(),110);
//获得TCP连接的网络流对象
netstream=client.GetStream();
//创建一个用于读取该网络流的StreamReader对象
streamReader=new StreamReader(netstream,System.Text.Encoding.UTF8);
//读取网络流中的一行响应信息
returnData=streamReader.ReadLine();
//将响应信息显示在状态栏中
statusText.Text="连接服务器:"+returnData+CRLF;
//验证用户名
sendData="USER"+emailUNameText.Text.Trim()+CRLF;
byteSendData=Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData,0,byteSendData.Length);
returnData=streamReader.ReadLine();
statusText.Text="验证用户名:"+returnData+CRLF; //向服务器发送STAT命令,取得邮件的数量和大小
sendData="STAT"+CRLF;
byteSendData=Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData,0,byteSendData.Length);
returnData=streamReader.ReadLine();
statusText.Text="邮件数量和大小:"+returnData+CRLF; //改变按钮的状态
contactBtn.Enabled=false;
disconnectBtn.Enabled=true;
receiveBtn.Enabled=true; //将光标置回原来的位置
//Cursor.Current=cr;
}
catch(Exception ex)
{
statusText.Text=ex.Message+CRLF;
}
} private void disconnectBtn_Click(object sender, EventArgs e)
{
//将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor; //向服务器发送QUIT命令,结束和POP3服务器的会话
sendData="QUIT"+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
statusText.Text = "断开连接:" + returnData + CRLF ; //关闭网络流和读取器
netstream.Close();
streamReader.Close(); //改变按钮的状态
contactBtn.Enabled = true;
disconnectBtn.Enabled = false;
receiveBtn.Enabled = false; //将光标置回原来的位置
//Cursor.Current = cr;
} private void recieveEmailBtn_Click(object sender, EventArgs e)
{
emailText.Clear(); //将光标置为等待状态
//Cursor cr = Cursor.Current;
//Cursor.Current = Cursors.WaitCursor;
try
{
//根据邮件编号从服务器获取相应邮件
sendData="RETR"+eamilNoText.Text.Trim()+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
//如果读取成功,则在“邮件信息”文本框中显示邮件的详细信息
if(returnData!="-")
{
//不断读取邮件内容,直到结束标志:英文句号
while(returnData!=".")
{
emailText.Text+=returnData;
returnData=streamReader.ReadLine();
}
//若backupCheckBox未选中,则收取邮件后,删除保留在服务器上的邮件
if(backupCheckBox.Checked==false)
{
sendData="DELE"+eamilNoText.Text.Trim()+CRLF;
byteSendData = Encoding.ASCII.GetBytes(sendData.ToCharArray());
netstream.Write(byteSendData, 0, byteSendData.Length);
returnData = streamReader.ReadLine();
statusText.Text="删除保留在服务器上的邮件:"+returnData+CRLF; }
}
else //如果读取失败,则在“状态”列表框中显示失败信息
{
statusText.Text="读取邮件:"+returnData+CRLF;
} //将光标置回原来的位置
//Cursor.Current = cr;
}
catch( Exception ex)
{
statusText.Text = ex.Message + CRLF ;
} }
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货