Email应用的构成组件
1.邮件客户端
2.邮件服务器
3.SMTP(Simple Mail Transfer Protocol)协议
一.邮件客户端
- 读/写Email消息
- 与服务器交互,收/发Email消息
- Outlook、Foxmail、Thunderbird
- Web客户机
二.邮件服务器
1.邮箱:存储发给用户的Emial
2.消息队列:存储等待发送的Email
三.SMTP协议
邮件服务器之间传递消息所用的协议
使用TCP进行email消息的可靠传输
客户端:发送消息的服务器
服务器:接受消息的服务器
Email应用的示意
1.第一个阶段:用户在计算机上写邮件
2.第二个阶段:把写好的邮件传输到自己邮件服务器的消息队列中
3.第三个阶段:本方的邮件服务器会吧邮件发送到对方的邮件服务器的邮箱中
4.第四个阶段:对方接受邮件
HTTP协议和SMTP协议的对比
首先,这两种协议都被用来,从一个主机向另一主机传递File的;对于http来讲,它一般把一些文件(例如 html文件)从一个web server传递到 web client那里,例如你平时打开个网页。对于SMTP来说它传递的是e-mail文件,从一个mail server 传递到另一 个mail server,并且两种协议都是persistent connections。
但是 HTTP 是一种pull 协议,所谓pull型协议是指:某人是把文件信息,从web server那里取出来,也就是客户主动去拿文件,因此事pull。而SMPT是一种push协议,是发送邮件的服务器向接受邮件的服务器主动发送信息。
另外一个显著的不同就是,我们要求SMTP的消息的body必须是7位内的ASII码,邮件的报文格式无论主体还是首部行都要只采用7位的ASII码值,我们知道ASCII是用来制订计算机中每个符号对应的代码,也叫做计算机内码,7位的ASCII可以表示128种状态,每一种状态唯一的编码为一个7位的二进制数进行编码。一共有128个字符,也就是你所发的消息是有这128个字符组成的,因此假如报文中有汉字,那么报文就错了。而HTTP就没有这样的限制。
Email消息格式
STMP协议:email消息传输/交换协议
文本消息格式:
Email多媒体消息扩展
MIME:多媒体邮件扩展 RFC 2045, 2056
通过在邮件头部增加额外的行以声明MIME的内容类型
额外的头部行包括数据编码方法,多媒体类型,子类型,参数等。
例如:
邮件访问协议
一.POP协议
POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。常用的是第三版 ,所以简称为POP3。
POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是网管人员进行管理的。举个形象的例子,Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信一样的道理。
POP的三种状态:
1.认证状态:当客户机与服务器建立连接时,客户机向服务器发送自己身份(这里指的是账户和密码)并由服务器成功确认。
2.处理状态:客户端由认可状态转入处理状态,在完成列出未读邮件等相应的操作后客户端发出quit命令。
3.更新状态:退出处理状态进入更新状态,开始下载未阅读过的邮件到计算机本地之后最后重返认证状态确认身份后断开与服务器的连接。
实例:
二.IMAP协议
IMAP(Internet Mail Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。
它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。
三.HTTP协议
HTTP协议也可以充当邮件访问协议
例如:163、QQ邮箱等。