POP3协议中的RETR命令为何不能显示邮件的内容?

bluecat_0616 2006-10-25 11:31:59
如题,先谢谢各位。。。
主要代码如下:

private TcpClient mailclient;
private NetworkStream ns;
private StreamReader sr;
private StreamWriter sw;

sw.WriteLine("Stat");//执行pop3权限检查命令
sw.Flush();
m_response = sr.ReadLine();
string[] nummess = m_response.Split(' ');
totmessages = Convert.ToInt16(nummess[1]);//获取服务器中有几封信件
if (totmessages > 0)
{
this.L_Conut.Text = "you have " + totmessages + " messages";
}
else
{
this.L_Conut.Text = "you have no messages";
}
sw.WriteLine("retr 1");
sw.Flush();
m_response = Convert.ToString(sr.ReadLine());
this.Tb_Body.Text = m_response;
...全文
490 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecat_0616 2006-10-31
  • 打赏
  • 举报
回复
前面登录的我省去了。。
我看看,谢谢各位了
foyuan 2006-10-31
  • 打赏
  • 举报
回复
我刚刚写完一个POP3类 楼主需要的话 加我MSN
gaoxin_zhao@alumni.sdu.edu.cn
bluecat_0616 2006-10-31
  • 打赏
  • 举报
回复
retr后面的参数是第几封邮件,我已经readline了啊?
那应该在哪里修改呢?POP3命令大全里面就是这样介绍的啊?
gzdiablo 2006-10-27
  • 打赏
  • 举报
回复
另外
Stat
retr #
返回的不止一行
好像是返回到 "." 结束
你得一直ReadLine直到 "."
NetworkStream 好像还不能释放里面的剩余数据
gzdiablo 2006-10-27
  • 打赏
  • 举报
回复
LZ没发送
user (userName)/r/n
pass (passWord)/r/n
命令

没登陆人家肯定不给你,你想要的信息啦.
anuo06 2006-10-27
  • 打赏
  • 举报
回复
顶一下
第一章 前言 课题来源 当前流行的各大邮件客户端软件除了最主要的收发信件之外,功能越来越复杂,但是人 们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更 加显得太过于华丽而不太实用。有鉴于此,在了解RFC底层协议的基础上,本人开发了这 个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能。 电子邮件介绍 电子邮件(简称E- mail)又称电子信箱、电子邮政,它是一种用电子手段提供信息交换的通信方式。它是 全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数 据传送,它是一个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传 送、接收、存储等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是 Internet资源使用最多的一种服务,E- mail不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息 。 电子邮件不是一种"终端到终端"的服务,是被称为"存储转发式"服务。这正是电子信箱 系统的核心,利用存储转发可进行非实用时通信,属异步通信方式。即信件发送者可随 时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件读取信件, 不受时空限制。在这里,"发送"邮件意味着将邮件放到收件人的信箱,而"接收"邮件 则意味着从自己的信箱读取信件,信箱实际上是由文件管理系统支持是一个实体。因 为电子邮件是通过邮件服务器(mail server)来传递的。通常mail server 是执行多任 务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向mail server管理 人员申请一个信箱账号,就可使用这项快递的邮件服务。 电子邮件的工作原理: 电子邮件的发送是通过电子邮件简单传速协议(Simple Mail Transfer Protocol,简称 SMTP)来完成的,电子邮件的接受是通过POP3协议来实现。它是Internet下的一种电子 邮件通信协议。 电子邮件的基本原理,是在通信网上设立"电子信箱系统",它实际上是一个计算机系 统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上 为用户分一定的存储空间作为用户的"信箱",每位用户都有属于自己的一个电子信箱。 并确定一个用户和用户可以随意修改的口令。存储空间包含存放所收信件、编辑信件以 及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转 发、存档等各种操作。系统功能主要由软件实现。 开发环境及运行环境 1.4.1开发环境 AMD Athlom(TM), 512 内存,80G 硬盘 Microsoft(R)Windows XP Professional Micosoft Visual Studio 2003 (C Sharp) Micosoft Developer Network for Visual 2003 运行环境 Internet pentium 2及以上处理器,32M以上内存,4G以上硬盘 Micosoft windows 9X/NT操作系统 800*600或以上的屏幕分辨率 确保机器上安装有.Net FrameWork 或者以上版本 第二章 系统需求分析 系统功能需求分析 电子邮件系统需求实现的功能包括新建用户的帐号,接受简单邮件或带附件的邮件,发 送简单邮件或发送带附件的邮件,电子邮件编号,电子邮件分类管理,通信薄管理。为 了使用通信薄,于是添加了对用户资料的增加,修改,取消操作。 2.1.1软件的总体架构 图 1 软件构架图 2.1.2 系统功能 图2 系统功能图 2.1.3系统总体用例图 图3 系统总体用例图 数据库需求分析 在对系统进行系统需求分析的基础上,可以得到系统在处理数据时会用到下面所示的 数据项和数据结构: 1)用户信息:帐号名称,用户名,密码,电子邮箱地址,SMTP服务器,SMTP端口号,P OP3服务器,POP3端口号。 2)通信薄信息:姓名,邮箱地址,电话号码,QQ号,手机号码,通信地址。 第三章 系统设计 系统的流程设计 邮件客户端最重要的两个功能就是接收邮件和发送邮件,其接收邮件的流程图如图 4所示。从流程图可以看出,接收邮件时首先要创建一个TCP连接到POP3服务器。如果 连接不成功就退出执行,连接成功后再发送USER和PASS命令进行身份验证,身份验证通 过后再通过STAT命令获得要接收的邮件数,当邮件数大于0时,通过RETR命令逐个接收邮 件。接收邮件完毕后,检查帐号是否保留服务器上的邮件设置,如果是就不作任何操 作,否则从服务器上删除已经接受的邮件。最后关闭连接。完成邮件接收。 图4 接收邮件流程图 发送邮件的流程图,先检查"发信箱"目录是否有待发邮

110,336

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧