说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB怎样接收电子邮件(POP3协议简介)

HTML文档下载 WORD文档下载 PDF文档下载
VB怎样接收电子邮件(POP3协议简介)

在Internet,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以忽略它们的存在)。这些命令被客户端计算机用来发送 给远程服务器。反过来,服务器返回给客户端计算机两个回应代码。如果你还没有看本站另一篇文章-“Winsock Terminal 示例程序”的话,请先阅读那篇文章,因为你需要那个程序来做实验。

运行示例程序,单击工具栏上的"Connect to"按钮。在弹出的对话框中输入你要连机的邮件服务器的地址例如:

mail.comset.net

选择POP3协议,然后单击"Connect"按钮。如果成功的话(如果出错,肯定是你服务器地址有问题,别怀疑到程序头上来),你会在文本框中看到服务器返回给你的信息。我的服务器的应答如下:

+OK POP3 mail.comset.net v5.49 server ready

这个字符串告诉你连机成功了。不同服务器的回应会有所不同,但开头部分都是一样的,那就是:
"+OK"。它的意思是服务器接受客户端计算机所使用的命令顺序及语法。如果开头是"-ERR",则表示你使用了错误的命令。在你的应用程序中,只须处理来自服务器的回应的前面几个字符。这么小的处理量正是POP3相对其它协议的优势所在。

授权状态

好了,现在我们已经建立了同服务器的连接并且从服务器那里得到了肯定的回答。接下来要做的就是告诉服务器你的身份。服务器要管理成千上万个邮箱并不是件好难的事。它已为每个邮箱建立好了一个帐户。每个帐户由用户名和密码构成。当你连上服务器后,要发送的第一个命令就是USER,用户名是该命令的参数。具体写法如下:

USER username

如果用户名已注册,服务器将返回一条正确的消息,然后你就可以输入下面的命令,告诉服务器你的密码。

PASS password

如果用户名和密码吻合的话,服务器同样会返回一条正确的消息,告诉你可以进入下一阶段,即TRANSACTION state.

TRANSACTION状态

为了知道你的邮箱中目前有多少封邮件以及这些邮件的大小,可使用STAT命令。它会告诉你邮箱目前的状态。服务器所返回的信息可能会是下面的样子:

+OK 0 0 (你的邮箱中没有邮件)
+OK 3 825 (你的邮箱中有三封邮件,大小为825个八位字节)

如果邮箱中没有邮件,就没有什么好做的了,用QUIT命令就可结束同服务器的连接。如果邮箱中有邮件的话,你可以用RETR命令把邮件下载到你自己的机器上。这个命令要求邮件的索引作为其参数。例如,如果我们想收第一封邮件,可输入如下命令:

RETR 1

要想取回其它的邮件,用上面的命令加上相应的邮件编号就行了。如果你输入的邮件编号超过了信箱中的邮件数量,服务器就会返回一个 "-ERR" 给你。作为对RETR命令的回应,服务器会返回给你一个字符串。这个字符串包含下面这些东西:"+OK"、邮件大小、邮件文本以及一个包含小数点的字符串。最后一个字符串,也就是小数点表示消息的结束。例如:

Client: RETR 2
Server: +OK 234 octets
Server: <邮件文本>
Server: .

注意上面收邮件的过程并不意味着将这些邮件转移到你的计算机上。你是得到这些邮件的一份拷贝,你的住信箱中仍会存放这些邮件直到你用DELE命令删除它们。同样地,DELE命令也需要你提供邮件的索引号。实际上,当你使用了DELE命令后,这些邮件并不是立即从服务器上删除。这些邮件只是被做上了一个删除的标记,当你断开同服务器的连接后,才真正从服务器上删除。如果你想移除这些删除标记,用RSET命令。这个命令并不针对某一个特定的邮件,而是移除所有删除标记,所以你不需要提供邮件索引号给这个命令。

除了上面所说的命令之外,当你还处在TRANSACTION状态时,POP3还支持另外两个命令。这两个命令是:LIST和NOOP。LIST命令可用来列出邮件的信息。就象下面所显示的一样:

Client: LIST
Server: +OK 2 messages (320 octets)
Server: 1 120
Server: 2 200
Server: .

通过对LIST命令提供邮件索引号,可列出特定邮件的信息,如下例:

Client: LIST 2
Server: +OK 2 200

NOOP命令具体的事情不做,只是用来检查同服务器的连接。

UPDATE状态

当你处于UPDATE状态时,你只有一个命令可用,那就是:QUIT。用这个命令来确认你所做的所有改变,删除被标上删除标记的邮件以及关闭连接。

其它POP3命令

POP3协议还支持另外三个命令:TOP、UIDL及APOP。这里只介绍第一个命令。TOP命令可用来获取邮件头及被预定义的一块字符串。通常如果你的邮箱中中一封容量很大的邮件时,这个命令特别有用。用TOP命令,你可以只显示邮件头的信息,从中找出邮件作者有主题。你甚至可以只下载这部分信息。该命令的语法如下:

TOP msg n

msg - 邮件的索引号

n - 你想要显示的行数


width()-JQuery API ajaxForm(object)-JQuery API ajaxSubmit(object)-JQuery API clearForm()-JQuery API clearInputs()-JQuery API fieldSerialize(true)-JQuery API fieldValue(successful)-JQuery API formSerialize(true)-JQuery API formToArray(true)-JQuery API resetForm()-JQuery API $.recallDroppables()-JQuery API $.SortSerialize()-JQuery API Draggable(hash)-JQuery API DraggableDestroy()-JQuery API Droppable(options)-JQuery API DroppableDestroy()-JQuery API Sortable(options)-JQuery API SortableAddItem(elem)-JQuery API $.meta.setType(type, name)-JQuery API data()-JQuery API disableTab(position)-JQuery API enableTab(position)-JQuery API tabs(initial, settings)-JQuery API triggerTab(position)-JQuery API triggerTab(position)-JQuery API Tooltip(settings)-JQuery API PHP简介-PHP初学入门教程1 选择PHP的理由 -PHP初学入门教程2 从一个简单的程序来了解PHP -PHP初学入门教程3 PHP语法基础 -PHP初学入门教程4 建设一个简单的交互网站(一) -PHP初学入门教程5 56k modem能在linux下上网的都有哪几个牌子以及型号?我的是全向的秋池飞叶,能上吗? sql语句求解! 7月7,好日子,和女友在一起了吗? 请教一个java连接oracle9i的问题~急 谁有PlayCASE可供下载?MrCase.com的网站我打不开啊。 各位兄弟,你们公司上班能上网吗? RegisterServiceProcess需要哪个头文件? 更深露重,有翅膀没翅膀的喜鹊都该回去睡觉了吧?:D 今天有想哭的么? 一道三级上机题帮忙调试,很简单。 DirectShow 音频 视频 同步的问题! 哪里能找到asp.net+MSSQL2000空间? DirectShow 在网络上广播AVI,一开始还好,可是当文件播放了20分钟以后,接收端的声音就明显的和视频不同步了。 form表单的几个问题 谢谢帮助 Client端和Server端的Socket用什么方法判断数据接收完毕? 我觉得vb.net比c#的程序可读性更强一些,大家认为呢? 最近很少来CSDN了更别说VB版了散分 各位高手,请问TREE组件如何用啊? 蝶恋花——写在七夕(淡月儿) 写入数据库的图片 如何读出来啊 急急急 急!!!!!111111111 写入数据库的图片 如何读出来啊 急急急 急!!!!!111111111 求救!!在线等候!! FORTRAN 77與C語言之間互相使用 关于CBCGOutlookBar的问题 如何在Delphi中调用WINRAR或WINZIP动态链接库的接口???(急,急,急......) 请教DataGrid控件新增一行的问题。 在unixware中使用消息队列,当消息队列比较长并且创建的消息队列较多时,出现堵塞? 为什么我调用 GethostName 这个函数 返回值是 O 但是GetLastError 却返回14呢!? 怎么通过http协议联接数据库呢?或者怎么样远程联接数据库? 如何清除ds.tables中的数据 奇怪!用unescape函数解码出来的一部分字符只能用document.write()的方法来显示? 求救!!!!如果我是定向招生读的大学,和定向单位签订11年和约,如果我不想去定向单位工作,该负怎样的法律责任!!!! 冬天来了,春天还会远吗?——中国程序员的春天 请教无标题窗口怎么移动?? 听同学说用一个按钮可以实现后退两页的,那么三页也可以实现吧,怎样写? 用hibernate 如何实现分页 我不太明白这些版本控制到底最大的好处是什么? 程序运行时实时变量出错? 各位老兄,请问在java中怎么解决这样<Node Name="N1" Value="1" />的XML 哪有winamp3的“汉化补丁”,源程序我有 使用CSocket类时出现访问冲突 庆祝网站初建:一般的界面,实用的文章例子,欢迎大家参观我的网站http://vcp4.51.net 帮帮小弟吧~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 请教各位大侠:VFP中SQL语言应该怎么学?? 如何自行编写一个自释放的EXE文件?,分不够,可另开恭送 dll卸除时 我要做一些收尾工作 代码要写在哪里?? 请教各位大侠:VFP 中的程序应该怎么学???谢谢指教!! 如何修改Canon BJ-4650打印机驱动程序,实现A3纸的加长打印? 心语 使用ODBC连接MySQL数据库时在stderr处有错误输出 这样的函数名怎么调用 王临川是谁 王临川指的是谁 临川王猴子王猴子的固定书店在哪?流动书摊在哪什么时候可以碰到,想找猴哥买书啊,他很久没来临一了. 陶渊明 生活在什么朝代 九物级物理,有图,第一题.插座准备接大功率有电器,有与没有这句话,在接法上有什么不同? 七年级下册人教版数学书习题9.3 第九题答案和140练习2答案(有图)要有过程. 王临川的原名急 集合A中的元素1,3,a平方加a,a加1 且a属于A 求a 设全集a={1,3,x}集合b={1,x平方} A并b={1,3,X}则X= 集合a=1,3,X b=x的平方,1,b属于a,求x0为什么不可以 若集合A={1,3,a},B={a的平方},且B⊆A,则a的取值集合是什么? 为阻法院强制执行 浙江金华一老人扬言浙江金华一智障儿命悬半空 特勤消防空宁波银行发力托管业务 首只公募基金开浙江云和经贸合作洽谈签约引资50多亿把美式“监听帝国”关入“笼子”杭城周末马拉松大派对 关键词:超越、美国无人机再次出手清除巴塔首领 和谈巴基斯坦塔利班头目死于美无人机空袭 中朝俄荣膺第14届中国吴桥国际杂技艺古巴宣布取缔私营电影放映厅报告称中国超越日本 成韩国材料零部件“自己的刀就要削自己的把”75所高校齐晒账单(看深化改革 道教两起暴恐案一审宣判南京大屠杀历史又添新证西班牙 监督机制缺失致公款滥用(深度沪指重上3000点美议员要求国会调查孔子学院是否“限制新书架面对新规的选择(大昭评论)文明哈尔滨 民生至上 幸福“冰城”心相连 路相通(丝路絮语)
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘