Email应用
Email应用的构成
构成组建
1.邮件客户端(在Email应用外围)
- 读,写Email消息
- 与服务器交互,收、发Email消息
- Outlook,Foxmail,Thunderbrid
- Web客户端
2.邮件服务器
- 为每个用户分发一个邮箱:存储发给该用户的Email
- 消息队列:存储等待发送的Email
3.SMTP协议(Simple Mail Transfer Protocol)
- 邮件服务器之间传递消息所使用的协议
- 客户端:发送消息的服务器
- 服务器:接收消息的服务器
- 使用TCP协议进行email消息的可靠传输
- 运行在端口25
- 传输过程的三个阶段:握手——消息的传输——关闭【由此可以看出Email是一个异步应用】
- 采用命令/响应交互模式:命令:ASCII文本;响应:状态代码和语句
- Email消息只能包含7为ASCII码(由于email是一个很老的应用)
- SMTP交互示例:
- 使用持久性连接
- 要求消息必须由7位ASCII码构成
- SMTP服务器利用CRLF.CRLF确定消息的结束
- STMP协议与HTTP协议:
- 不同点
- 相同点:持久性连接、命令/响应交互模式、命令和状态都是ASCII码
思考题:Email作为互联网上的古老应用,从出现至今经过了怎样的演变过程?站在今天的角度,Email应用有哪些缺点和不足?
4.Email消息格式
- SMTP:email消息的传输/交换协议
- 文本消息格式标准:头部行:To、From、Subject(与SMTP命令不同);消息体:消息本身、只能是ASCII码
5.email消息格式的多媒体扩展
- MIME:多媒体邮件扩展
- 通过在邮件头部增加额外的行以声明MIME的内容类型
6.邮件访问协议
- 邮件访问协议:从服务器获取邮件
- 常用协议:
- POP(Post Office Protocol):认证/授权(客户端<-->服务器)和下载
- IMAP(Internet Mail Access Protocol):更多功能;更加复杂;能够操纵服务器上存储的信息
- HTTP:163,QQ Mail等
7.POP协议
- 认证阶段
- 客户端命令:User:声明用户名;Pass:声明密码
- 服务器响应:+OK;-ERR
- 事务阶段
- List:列出消息数量
- Retr:用编号获取消息
- Dele:删除消息
- Quit
- POP协议的模式
- “下载并删除”模式:用户如果换了客户端软件,无法重读该邮件
- ”下载并保持“模式:不同客户端都可以保留消息的拷贝
- POP3是无状态的
8.IMAP协议
- 所有的消息统一保存在一个地方:服务器
- 允许用户利用文件夹组织消息
- IMAP支持跨会话的用户状态(文件夹的名字;文件夹与消息ID之间的映射等)
课后练习:比较IMAP与POP3的不同,并调研主流Email服务对IMAP协议的支持情况?
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。比如通过客户端收取了邮箱中的2封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。
IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。 from百度