电子邮件收发原理和实现(POP3, SMTP) [整理]

<!-- 最近工作上接触到了邮箱的开发,整理一下学到的东西,以备忘 -->

 

电子邮件的收发流程示意图:

 


相对于邮件客户端的流程就是:

 


邮件接收——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

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Re:计算机网络  应用层 诸多协议 实验环境搭建  DNS、DHCP、HTTP、FTP、Telnet、RDP、STMP、POP3、IMAP======================# 应用层 诸多协议 域名系统 DNS 动态主机配置协议 DHCP 超级文本传输协议 HTTP 文件传输协议 FTP Telnet 协议和 RDP(远程桌面协议) 发送电子邮件的协议 SMTP  接收电子邮件的协议 POP3 和 IMAP # 什么是域名 整个Internet网站和各种服务器数量众多,各个组织的服务器都需要给一个名称,这就很容易重名。如何确保Internet上的服务器名称在整个Internet唯一呢?这就需要Internet上有域名管理认证机构进行统一管理。如果你的公司在互联网上有一组服务器邮件服务器、FTP服务器、Web服务器等),你需要为你的公司先申请一个域名,也就是向管理认证机构注册一个域名。 域名的注册遵循先申请先注册为原则,管理认证机构要确保每一个域名的注册都是独一无二、不可重复的。 # 动态主机配置协议 DHCP 静态地址和动态地址应用场景 DHCP 地址租约 DHCP 租约生成过程 DHCP 地址租约更新 # Telnet 协议 Telnet是一个简单的远程终端协议(非加密、且简单),它也是因特网的正式标准。用户使用telnet客户端就可以连接到远程运行Telnet服务的设备(可以是网络设备例如:路由器、交换机,也可以是操作系统,比如Windows或Linux等),进行远程管理。 Telnet能将用户的键盘指令传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此,Telnet又称为终端仿真协议。 Telnet并不复杂,以前应用得很多。现在由于操作系统(Windows和Linux)功能越来越强,用户己较少使用Telnet了。不过配置Linux服务器和网络设备还是需要 Telnet 来实现远程管理和配置 # 远程桌面协议 RDP 现在Windows操作系统很少使用telnet进行远程管理了,更多是使用远程桌面进行远程管理。 Windows系统启用远程桌面,客户端使用远程桌面客户端(mstsc)进行连接。 它们之间使用RDP协议进行通信,RDP协议默认使用TCP的3389端口。 # http 协议、版本和网页 创建网页(准备创建网站、需要设计网页和安装Web服务器) 统一资源定位符URL 绝对路径和相对路径 创建Web站点 HTTP协议版本 HTTP请求报文和响应报文 HTTP响应报文: Cookie 通过代理服务器访问网站 # 文件传输协议 FTP FTP 是File Transfer Protocol(文件传输协议)的英文简称。用于Internet上的控制文件的双向传输。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 简单地说,支持FTP协议的服务器就是FTP服务器。 # 安装和配置邮件服务器  模拟整个互联网发送邮件的过程 发送电子邮件的协议 SMTP  接收电子邮件的协议 POP3 和 IMAP--------------------------------------              
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
### 回答1: 基于POP3SMTP协议的邮件收发应用程序是一种能够通过互联网发送和接收电子邮件的软件。POP3协议是一种用于接收邮件的协议,它允许用户从邮件服务器上下载邮件到本地计算机上。SMTP协议则是一种用于发送邮件的协议,它允许用户将邮件发送到邮件服务器上,然后由服务器邮件发送到目标地址。 这种邮件收发应用程序通常包括一个邮件客户端和一个邮件服务器邮件客户端是用户用来发送和接收邮件的软件,它可以连接到邮件服务器上,下载邮件并将邮件发送到服务器上。邮件服务器则是用来存储和转发邮件的软件,它可以接收用户发送的邮件并将邮件发送到目标地址。 基于POP3SMTP协议的邮件收发应用程序可以帮助用户快速、方便地发送和接收邮件,是现代通信中不可或缺的一部分。 ### 回答2: 邮件系统是现代通讯的重要组成部分,在各种应用场景中广泛使用。其中,基于pop3smtp协议的邮件收发应用程序是其中的一种应用程序。 Pop3协议是一种电子邮件协议,用于从远程服务器上获取电子邮件。使用pop3协议,应用程序可以连接到邮件服务器上的pop3端口,获取到存储在服务器上的邮件。通过pop3协议,应用程序可以获取邮件的主题、发件人、收件人、正文等信息,并且可以将获取到的邮件缓存到本地计算机上。 SMTP协议是一种电子邮件协议,用于将电子邮件传递到远程服务器上。使用smtp协议,应用程序可以连接到邮件服务器上的smtp端口,将需要发送的邮件发送到服务器上。通过smtp协议,应用程序可以将邮件发送给多个收件人,并且可以添加附件、抄送、密送等功能。 基于pop3smtp协议的邮件收发应用程序可以实现邮件的在线收发邮件的过滤、自动回复等功能。比如,用户可以通过这种应用程序将自己的邮件同步到不同的设备上,方便用户在不同设备之间进行邮件通讯。同时,邮件过滤功能可以帮助用户对垃圾邮件进行自动过滤,避免因垃圾邮件带来的骚扰和时间浪费。自动回复功能可以帮助用户在繁忙的工作中提高工作效率,避免因忙碌而错失重要的邮件。 总之,基于pop3smtp协议的邮件收发应用程序可以帮助用户方便快捷地管理自己的邮件,提高工作效率,并且可以通过邮件通讯与他人进行沟通和交流。 ### 回答3: 随着互联网的普及,电子邮件作为一种必要的通信工具,已经被广泛地应用到各个领域。在日常生活和工作中,我们使用电子邮件收发邮件已经成为一种习惯。电子邮件涉及到多种协议,其中POP3SMTP协议是邮件收发的核心协议。 基于POP3协议的邮件收取应用程序,可以实现邮件接收功能。POP3是邮局协议的缩写,其作用是接收用户在邮件服务器上的邮件。在收取邮件时,邮件客户端向邮件服务器发送请求,服务器响应请求并将邮件传输到客户端。POP3协议通过TCP协议传输数据,使用110端口。POP3协议的特点是将所有邮件下载到本地,用户可以对邮件进行管理,例如标记已读、删除、归档等操作。 基于SMTP协议的邮件发送应用程序,可以实现邮件的发送功能。SMTP是简单邮件传输协议的缩写,其作用是将用户在邮件客户端上编写的邮件发送到邮件服务器SMTP协议通过TCP协议传输数据,使用25端口。SMTP协议的特点是将邮件发送到服务器后,由服务器转发到其他邮件服务器,最终到达接收方。SMTP协议需要认证用户身份,确保发送者身份的安全。同时,SMTP协议还支持多种附件格式,例如文本、图片、音频、视频等。 邮件收发应用程序是一种基于网络的应用程序,能够帮助我们快速高效地收发邮件。在实现这种应用程序时,我们需要掌握POP3SMTP协议的工作原理和使用方法。除此之外,还需要考虑安全性、稳定性以及易用性等因素。通过不断地优化和改进,我们可以开发出更加高效、稳定、安全的邮件收发应用程序,为用户提供更好的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值