.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在C#中如何在客户端接收信件

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

C#中如何在客户端接收信件

创建界面

 

类型

对象名

Text属性

Label

Label1

 

Label

Label2

用户名:

Label

Label3

密码

TextBox

TextBox1

 

TextBox

TextBox2

 

Button

Button1

接收

Button

Button

退出

 

当发送的验证通过Label1text属性就会显示成功的消息

当发送的验证没有通过Label1text属性就会显示失败的消息

 

显示代码

 

1.在代码前端添加代码

using System.Threading;

using System.Net;

using System.Net.Sockets;

using System.IO;

2.添加字段代码

private TcpClient mailclient;

         private NetworkStream ns;

private StreamReader sr;

private StreamWriter sw;

3.双击“接收”按钮

private void Button1_Click(object sender, System.EventArgs e)

         {

              login();

         }

         private int login()

         {

              string m_response; //从服务器返回的信息变量

              int totmessages;  //指明在你的邮箱中有几封

              try

              {

                   //连接服务器,其中第一参数代表服务器地址,第二参数代表pop3的端口数

                   mailclient=new TcpClient("pop.163.com",110);

              }

              catch(Exception e)

              {

                   Label1.Text="error";//服务器连接失败

                   return 2;

              }

              ns=mailclient.GetStream();//返回服务器字节流

              sr=new StreamReader(ns);

              sw=new StreamWriter(ns);

              m_response=sr.ReadLine();//读取服务器字节流字符

              //发送用户名给服务器

              sw.WriteLine("User "+TextBox1.Text);

              sw.Flush();

              //验证用户名是否正确

              m_response=sr.ReadLine();

              if(m_response.Substring(0,3)=="-ER")

              {

                   Label1.Text="User error";//用户连接失败

                   return 2;

              }

              //发送密码给服务器

              sw.WriteLine("Pass "+TextBox2.Text);

              sw.Flush();

              try

              {

                   //验证密码是否正确

                   m_response=sr.ReadLine();

              }

              catch(Exception e)

              {

                   Label1.Text="Password error";//密码连接失败

                   return 2;

              }

              if(m_response.Substring(0,4)=="-ERR")

              {

                   Label1.Text="Password error";//密码错误

                   return 2;

              }

              sw.WriteLine("Stat");//执行pop3权限检查命令

              sw.Flush();

              m_response=sr.ReadLine();

              string[] nummess=m_response.Split(' ');

              totmessages=Convert.ToInt16(nummess[1]);//获取服务器中有几封信件

              if(totmessages>0)

              {

                   Label1.Text="you have "+totmessages+" messages";

              }

              else

              {

                   Label1.Text="you have no messages";

              }

              return 1;

         }

4.双击“退出”按钮

private void Button2_Click(object sender, System.EventArgs e)

         {

              if(ns!=null)

              {

                   sw.Close();

                   sr.Close();

                   ns.Close();

                   mailclient.Close();

              }

     }

注意点:

Stat代表权限检查命令,如果要得到标题和发件人信息要用top执行命令,要得到文本信息要用retr执行命令,这些内容还需我总结一下,我在下个礼拜会详细介绍。

 

在星期四我写了一篇关于“在C#中如何发送信件”的文章写的不怎么样,因此今天我另外写了篇“在C#中如何接收信件”,在下个礼拜我会总结在C#中整个发送Email和接收Email的基本内容请大家光顾咯谢谢




相关文章

相关软件