标题:winsock邮件接收
只看楼主
zfc123
Rank: 2
等 级:论坛游民
帖 子:136
专家分:39
注 册:2007-5-4
结帖率:84.62%
 问题点数:0 回复次数:2 
winsock邮件接收
想做一个用winsock接收邮件的程序,发送的我已经做完了,但接收的从网上找到相关资料却挺少,不知道谁有没有这方面的代码能给我一份。
搜索更多相关主题的帖子: winsock 邮件 
2008-03-07 14:48
wenjinba
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-5-19
得分:0 
你好!
你用vb语言Winsock控件编写的邮件收发有源代码吗,可不可以接我看看。先谢谢了。
2008-05-19 10:23
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
得分:0 
POP适用于C/S结构的脱机模型的电子邮件协议,目前已发展到第三版,称POP3。脱机模型即不能在线操作,不像IMAP4(netscape支持IMAP4)
当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。
POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应的操作状态是成功还是失败

POP适用于C/S结构的脱机模型的电子邮件协议,目前已发展到第三版,称POP3。脱机模型即不能在线操作,不像IMAP4(netscape支持IMAP4)

当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。

POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应的操作状态是成功还是失败


在POP3协议中有三种状态,认可状态,处理状态,和更新状态。
当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。如下图

等待连接        身份确认         quit命令
  ——  |认可|————— |处理|——————|更新|
         |__________________________________|
                  重返认可状态
认可状态的命令语句

一般情况下,大多数现有的POP3客户与服务器执行采用ASCII明文发送用户名和口令,在认可状态下等待客户连接的情况下,客户发出连接,并由命令user/pass对在网络上发送明文用户名和口令给服务器进行身份确认。一旦确认成功,便转入处理状态。

为了避免发送明文口令的问题,有一种新的认证方法,命令为APOP,使用APOP,口令在传输之前被加密。

当第一次与服务器连接时,POP3服务器向客户机发送一个ASCII码问候,这个问候由一串字符组成。客户机是唯一的,与当时的时间有关,然后,客户机把它的纯文本口令附加到从服务器接收到的字符串之后, 然后计算出结果字符串的MD5单出函数消息摘要,客户机把用户名与MD5消息摘要作为APOP命令的参数一起发送出去。

目前,大多数windows上的邮件客户软件不支持APOP命令,qpopper支持。


POP3命令码如下:

命令 参数 状态 描述
------------------------------------------
USER username 认可 此命令与下面的pass命令若成功,将导致状态转换
PASS password 认可
APOP Name,Digest 认可 Digest是MD5消息摘要
------------------------------------------
STAT None 处理 请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL [Msg#] 处理 返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST [Msg#] 处理 返回邮件数量和每个邮件的大小
RETR [Msg#] 处理 返回由参数标识的邮件的全部文本
DELE [Msg#] 处理 服务器将由参数标识的邮件标记为删除,由quit命令执行
RSET None 处理 服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP [Msg#] 处理 服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP None 处理 服务器返回一个肯定的响应
------------------------------------------
QUIT None 更新

a.客户机希望结束这次会话
b.如果服务器处于‘处理’状态,那么将进入‘更新’状态以删除任何标记为删除的邮件
c.导致由处理状态到更新状态,又重返认可状态的转变
d.如果这个命令发出时服务器处于‘认可’状态,则结束会话,不进行‘更新’状态。


POP3协议在TCP/110端口上等待客户连接请求。
2008-05-19 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-202355-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.183588 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved