<!-- 最近工作上接触到了邮箱的开发,整理一下学到的东西,以备忘 -->
电子邮件的收发流程示意图:
相对于邮件客户端的流程就是:
邮件接收——POP3协议
POP3(Post Office Protocol 3,邮局协议版本3)主要用于支持使用客户端远程管理在服务器上的电子邮件。该协议是在RFC-1939中定义的,是Internet上的大多数人用来接收邮件的机制。POP3采用Client/Server工作模式,默认使用TCP 110端口。
* 在使用POP协议时,人们熟悉的很多功能,如查看收到了多少新邮件消息的功能,POP根本不支持。这些功能都内置到诸如Eudora或 Microsoft Outlook之类的邮件程序中,能为您记住接收的上一封邮件,以及计算有多少新邮件这类信息。因此,如果想获取这类信息,将需要由自己进行计算。
[详细请参考wiki的解析:http://zh.wikipedia.org/wiki/POP3
]
<POP3状态图>
<POP3常用命令表>
* 对大小写不敏感,以CRLF作为结束
[详细可参考RFC1939协议,http://www.rfc-ref.org/RFC-TEXTS/1939/contents.html
]
>> 命令可能的返回值
+ OK <描述> 成功
- ERR <描述> 失败
<POP3工作原理>
1) 客户端使用TCP协议连接邮件服务器的110端口;
2) 客户端使用USER命令将邮箱的账号传给POP3服务器;
3) 客户端使用PASS命令将邮箱的账号传给POP3服务器;
4) 完成用户认证后,客户端使用STAT命令请求服务器返回邮箱的统计资料;
5) 客户端使用LIST命令列出服务器里邮件数量;
6) 客户端使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;
7) 客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
(注:客户端UA可以设定将邮件在邮件服务器上保留备份,而不将其删除。)
一个基本实现(Java):
Pop3Test.java (见附件)
邮件发送——SMTP协议
SMTP(Simple Message Transfer Protocol,简单邮件传输协议)是用于传送电子邮件的机制。该协议是在RFC-821中定义的。采用Client/Server工作模式,默认使用TCP 25端口。
[详细请参考wiki的解析:http://zh.wikipedia.org/wiki/SMTP
]
<SMTP状态图>
<SMTP常用命令表>
* 对大小写不敏感,以CRLF作为结束
[详细可参考RFC821协议,中文版链接地址:http://www.5dmail.net/rfc/RFC821.txt
]
>> 命令可能的返回值
500 格式错误,命令不可识别(此错误也包括命令行过长)
501 参数格式错误
502 命令不可实现
503 错误的命令序列
504 命令参数不可实现
211 系统状态或系统帮助响应
214 帮助信息
220 <domain> 服务就绪
221 <domain> 服务关闭传输信道
421 <domain> 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)
250 要求的邮件操作完成
251 用户非本地,将转发向<forward-path>
450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)
550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)
451 放弃要求的操作;处理过程中出错
551 用户非本地,请尝试<forward-path>
452 系统存储不足,要求的操作未执行
552 过量的存储分配,要求的操作未执行
553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)
354 开始邮件输入,以<CRLF>.<CRLF>结束
554 操作失败
<SMTP工作原理>
1) 客户端使用TCP协议连接SMTP服务器的25端口;
2) 客户端发送HELO报文将自己的域地址告诉给SMTP服务器;
3) SMTP服务器接受连接请求,向客户端发送请求账号密码的报文(AUTH LOGIN);
4) 客户端向SMTP服务器传送账号和密码,如果验证成功,向客户端发送一个OK命令,表示可以开始报文传输;
5) 客户端使用MAIL命令将邮件发送者的名称发送给SMTP服务器;
6) SMTP服务器发送OK命令做出响应;
7) 客户端使用RCPT命令发送邮件接收者地址,如果SMTP服务器能识别这个地址,就向客户端发送OK命令,否则拒绝这个请求;
8) 收到SMTP服务器的OK命令后,客户端使用DATA命令发送邮件的数据。
9) 客户端发送QUIT命令终止连接。
一个基本实现(Java):
SmtpTest.java (见附件)
*Base64加密使用了Apache的开源包,使用时需导入附件中的commons-codec-1.5.jar包。
--------------------------------------------------------------------------------------------------
一些参考资料:
电子邮件检索与传输流程
Email电子邮件应用分析
用Java来编写可根据SMTP和POP3协议来收发E-mail的Java Applet
--------------------------------------------------------------------------------------------------
- 大小: 7.7 KB
- 大小: 27.8 KB
- 大小: 13.8 KB
- 大小: 24.3 KB
- 大小: 26.9 KB
- 大小: 27.7 KB
- 大小: 20.3 KB
分享到:
相关推荐
该课程设计主要任务是实现收发无附件的邮件。在上机前应认真做好各种准备工作,熟悉每个题目涉及的网络相关知识,熟悉机器的操作系统、语言的集成环境和设计工具。在实验过程中,通过一个实际网络协议或网络应用系统...
VC源码,电子邮件客户端例子,收发邮件,用到POP3和SMTP.
邮件收发程序,含有对POP3,SMTP的简单实现.zip
首先感谢mc,是他的程序给了我灵感,和初学的帮助。 mc的程序,不能发送邮件,在此我修改了错误,可以正常的发送邮件。 界面也从新整合个人认为更符合操作习惯 并增加了接受功能,只是该部分还没有完全实现...
实验报告请私聊-升级版见其它资源 关于要求:编程实现通过用户界面,用户登录信箱认证过程(含base64方式...这意味着除了使用SMTP协议发送邮件外,还需设计使用POP3协议接收邮件,在接收的时候采用黑白名单过滤的功能。
资源名字:基于C#+asp.net+cs的电子邮件收发系统设计与实现(源码+文档)_.net_SMTP_POP3_电子邮件收发系统.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合...
基于SMTP协议,编写程序模拟邮件系统收发邮件的运行过程。要求具有如下功能: 1、 用户能够注册,登录; 2、 用户能够注册; 3、 用户登录后能查看并编辑用户注册信息;可以发信给其它用户;查看来信,对来信进行...
基于SMTP_POP3协议的电子邮件自动收发系统的开发
visual c++基于SMTP,POP3收发电子邮件.zip
电子邮件收发系统php源码 (1)在运行系统之前,必须设置邮件服务器的地址,即SMTP和POP3。SMTP和POP3的设置包含在config.php文件中 //SMTP服务器地址 $smtp_server = "smtp.163.com"; //文件的最大限制 $quota_...
为了方便用户快捷地收发邮件,本课题利用SMTP协议和POP3协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。为了保证本系统功能的完整性,在实现该系统过程中,设计了邮件用户...
为了方便用户快捷地收发邮件,本课题利用SMTP协议和POP3协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。为了保证本系统功能的完整性,在实现该系统过程中,设计了邮件用户...
为了方便用户快捷地收发邮件,本课题利用SMTP协议和POP3协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。为了保证本系统功能的完整性,在实现该系统过程中,设计了邮件用户...
3.关于电子邮件收发: (1)电子邮件概述 (2)Intrenet电子邮件系统基础 (3)BASE64编码简介 4、关于核心工具Java类中的Jpcap 四. 核心源代码 1.截获部分源代码 2.还原部分源代码 五.实验结果 程序界面 ...
为了方便用户快捷地收发邮件,本课题利用SMTP协议和POP3协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。为了保证本系统功能的完整性,在实现该系统过程中,设计了邮件用户...
它能实现邮件的接收与发送,并能完成附件的传输,具有较好的人机交互性,易于使用。 开发环境:JDK1.6 + Windows平台 开发技术:Javamail 开发工具:Eclipse3.4 运行环境:PC上需安装JDK1.6,且正确配置环境变量。 ...
2 电子邮件相关协议 2.1 RFC822邮件格式 2.2 SMTP协议 2.2.1 SMTP协议简介 2.2.2 SMTP的命令与应答 2.3 POP3协议 2.3.1 POP3协议简介 2.3.2 POP3的命令和应答 3 系统需求分析 3.1 功能需求 3.1.1 邮件发送...
支持标准的SMTP POP3 IMAP4 服务,提供WEB 方式的收发邮件和系统管理功能,支持POP3 SMTP IMAP4 SSL功能,支持POP3 SMTP IMAP4多服务端口,支持HTML 编辑邮件,自动转发,自动回复,POP3代理收件,SMTP 代理发件,...
基于JavaMail的邮件收发系统是一种用于发送和接收电子邮件的应用程序,它基于JavaMail API来实现与邮件服务器的通信,并提供用户界面来进行邮件的管理和操作。以下是对该系统实现的描述: 用户界面: 系统提供了...