<!-- 最近工作上接触到了邮箱的开发,整理一下学到的东西,以备忘 -->
电子邮件的收发流程示意图:
相对于邮件客户端的流程就是:
邮件接收——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
分享到:
相关推荐
SMTP(Simple Mail Transfer Protocol)是互联网上传输电子邮件的标准协议,它定义了邮件服务器之间如何交互,使得用户能够将邮件从一个服务器发送到另一个服务器。SMTP使用TCP/IP协议栈,通常通过端口25进行通信。...
在IT领域,电子邮件系统是日常通信的重要组成部分,而POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)则是实现电子邮件收发的核心协议。这个VC(Visual C++)源码示例提供了一个...
本主题聚焦于使用VC++实现电子邮件的发送和接收,主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)这两种网络协议。 SMTP是互联网上用于发送电子邮件的标准协议,它定义...
电子邮件是互联网上最常用的信息交流方式之一,而POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)是实现电子邮件收发的核心协议。本压缩包中的内容是一个简单的邮件收发程序,包含...
这些命令的使用,可以帮助我们更好地理解电子邮件的工作原理和协议。 知识点总结 * SMTP协议:定义了邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器间的通信规则。 * POP3协议:定义了邮件客户端程序与POP3...
电子邮件是互联网上最基础的通信方式之一,而其背后的工作机制主要依赖于SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)等协议。这些协议规定了邮件的发送、接收和存储方式。 **...
首先感谢mc,是他的程序给了我灵感,和初学的帮助。 mc的程序,不能发送邮件,在此我修改了错误,可以正常的发送邮件。 界面也从新整合个人认为更符合操作习惯 并增加了接受功能,只是该部分还没有完全实现...
实验报告请私聊-升级版见其它资源 关于要求:编程实现通过用户界面,用户登录信箱认证过程(含base64方式...这意味着除了使用SMTP协议发送邮件外,还需设计使用POP3协议接收邮件,在接收的时候采用黑白名单过滤的功能。
邮件收发系统是互联网通信的重要组成部分,SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是两种核心的电子邮件协议,用于实现邮件的发送和接收。本项目仿照知名的邮件客户端软件...
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是互联网上用于电子邮件传输的两个核心协议。在本文中,我们将深入探讨这两个协议的原理及其在C++编程中的实现。 首先,SMTP是用于...
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是互联网上用于电子邮件传输的两种主要协议。在给定的标题和描述中,我们关注的是如何使用VC++编程语言来实现这两个协议,以便于...
POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)是互联网上用于电子邮件收发的两个关键协议。POP3主要用于从邮件服务器接收邮件,而SMTP则用于发送邮件。在本文中,我们将深入探讨...
### Telnet命令与SMTP及POP3协议实验报告 ...通过本次实验,我们不仅掌握了如何使用Telnet命令进行邮件的发送与接收,还深入了解了SMTP与POP3协议的工作机制,为进一步学习电子邮件系统的底层实现打下了坚实的基础。
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是互联网上用于电子邮件收发的两个主要协议。SMTP主要用于将邮件从一个服务器发送到另一个服务器,而POP3则用于从邮件服务器下载...
### Python使用POP3和SMTP协议收发邮件的示例代码详解 #### 一、概述 在互联网技术领域中,电子邮件仍然是一个重要的通信工具。对于软件开发者来说,掌握如何使用编程语言来实现邮件的发送和接收是一项实用技能。...
电子邮件是现代通信中不可或缺的一部分,基于POP3与SMTP协议的邮件收发程序是实现这一功能的基础。POP3和SMTP协议是互联网电子邮件系统的核心,它们确保了邮件能够在不同的邮件服务器之间可靠地传输。 SMTP(Simple...
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是电子邮件系统中的两个核心协议,它们分别处理电子邮件的发送和接收。 首先,让我们深入理解SMTP。SMTP是一种基于文本的协议,...
例如,"pop3smtp"这个压缩包文件可能包含了各种邮件服务提供商的POP3和SMTP服务器设置,便于用户参考。 在设置邮件客户端时,用户需要输入正确的POP3和SMTP服务器地址,同时还需要提供用户名(通常为完整电子邮件...