释放双眼,带上耳机,听听看~!
构成
- 邮件客户端(user agent)
- 邮件服务器
- SMTP协议(Simple Mail Transfer Protocol)
邮件客户端
- 读、写Email消息
- 与服务器交互,收、发Email消息
- Outlook, Foxmail, Thunderbird
- Web客户端
邮件服务器(Mail Server)
- 邮箱:存储发给该用户的Email
- 消息队列(message queue):存储等待发送的Email
SMTP协议
- 邮件服务器之间传递消息所使用的协议
- 客户端:发送消息的服务器
- 服务器:接收消息的服务器
- 使用TCP进行email消息的可靠传输
- 端口25
-
传输过程的三个阶段:
- 握手
- 消息的传输
- 关闭
-
命令/响应交互模式:
- 命令——ascII文本
- 响应——状态代码和语句
- Email消息只能包含7位ASCII码
### 特点
- 使用持久性连接
- 要求消息必须由7位ASCII码构成
- SMTP服务器利用CRLF.CRLF确定消息的结束。
与HTTP对比
- HTTP: 拉式(pull)
- SMTP: 退式(push)
- 都使用命令/响应交互模式
- 命令和状态代码都是ASCII码
- HTTP: 每个对象封装在独立的响应消息中
- SMTP: 多个对象在由多个部分构成的消息中发送
Email消息格式与POP3协议
信息格式——SMTP
SMTP:email消息的传输/交换协议
RFC 822:文本消息格式标准
-
头部行(header)
- To
- From
- Subject
-
消息体(body)
- 消息本身
- 只能是ASCII字符
### 消息格式:多媒体扩展
MIME:多媒体邮件扩展 RFC 2045, 2056
通过在邮件头部增加额外的行以声明MIME的内容类型
### 邮件访问协议:从服务器获取邮件
POP: Post Office Protocol [RFC 1939]
认证/授权(客户端——服务器)和下载
IMAP: Internet Mail Access Protocol [RFC 1730]
• 更多功能
• 更加复杂
• 能够操纵服务器上存储的消息
HTTP:163, QQ Mail……
POP协议
认证过程
-
客户端命令
- User:声明用户名
- Pass: 声明密码
-
服务器响应
- +OK
- -ERR
事务阶段
- List:列出消息数量
- Retr:用编号获取消息
- Dele: 删除消息
- Quit
“下载并删除”模式
用户如果换了客户端软件,无法重读该邮件
“下载并保持”模式:不同客户端都可以保留消息的拷贝
POP3是无状态的
IMAP协议
- 所有消息统一保存在一个地方:服务器
- 允许用户利用文件夹组织消息
-
IMAP支持跨会话(Session)的用户状态:
- 文件夹的名字
- 文件夹与消息ID之间的映射等