首先,来介绍一下比较常见的因特网电子邮件的流程框图,先来直观感受一下,假设发送的邮件的用户名为为小明,接收邮件的用户为小红。
图1:电子邮件协议及其通信实体
其中,在接收端邮件服务器(E-mail Server)与接收用户代理(User Agent)之间常用的协议有:POP3(Post Office Protocol-Version3)和IMAP(Internet Mail Access Protocol),他们都是基于TCP传输协议
上图中,小明要发送邮件,他的用户代理(可以理解为小明电脑里的Foxmail应用程序)就通过SMTP协议将邮件发送到他的邮件服务器,邮件服务器将此邮件加入到邮件服务器的发送邮件队列中。然后小明的邮件服务器再通过SMTP协议将此邮件发送到小红的邮件服务器中。但是,如何将小红邮件服务器中的邮件发送到小红的电脑上?如果继续使用SMTP协议,可以吗?
答案是不可以的。
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP),它是用于发送方的邮件服务器发送报文到接收方邮件服务器。它是一种推协议,即它是由要求发送文件的一方首先发起请求,将文件推送出去。另外,作为对比,介绍一下拉协议,拉协议有很多,比如HTTP,HTTP可以由需要资源的一方发起,比如说用户,在web上浏览网页的时候,打开一个链接,这个时候用户端的浏览器发送一个HTTP请求到服务器,服务器再将请求的资源通过HTTP响应报文的形式发送回来,这是一种用户主动请求,然后再将资源发过来的过程。他们都是基于TCP协议
上图中,小红的邮件服务器接收到来自小明的邮件之后,但是这个时候,小红的电脑处于关机状态,如果使用SMTP协议,邮件服务器发送请求,但是没有响应,过一段时间再发请求,一直没有响应,这样会造成资源的浪费,也很不合理。所以就需要用到POP3和IMAP协议。
POP3是一种极为简单的邮件访问协议,功能上较IMAP要差些。POP3按照3个阶段进行工作:特许、事务处理以及更新。
1、特许阶段,用户代理发送用户名和口令
2、事务处理阶段:用户代理取回报文;还可以对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息
3、更新阶段:结束该POP3会话;这个时候该邮件服务器删除那些被标记的删除的报文。
总结起来就是:先是发送用户的信息进行登录,然后具体的操作,是看邮件呢,还是删邮件,最后是结束会话。
再介绍IMAP之前,来介绍一下POP3的很大的缺点,它不是双向的。当用户用用户代理将邮件存储在本地之后,在本地所进行的对邮件的删除等操作,不会对用户的邮件服务器造成影响。但是IMAP解决了这样的问题
IMAP是一种邮件访问协议,但是它比POP3有更多的特色,但同时也比POP3要更复杂。它是双向的,将本地的邮件与远程的服务器联系起来。在本地所进行的操作可以与邮件服务器同步。
来看一下QQ邮箱中对于POP3和IMAP的区别的介绍: