Email应用的构成
- 邮件客户端
- 邮件服务器
- SMTP协议:只支持文本
邮件服务器:
邮箱:存储发给该用户的Email
消息队列:存储等待发送的Email
SMTP协议:
邮件服务器之间传递消息所使用的协议
客户端:发送消息的服务器
服务器:接收消息的服务器
传输过程
邮件的传送需要可靠传输,所以是基于TCP进行Email的可靠传输。
默认端口是25.
传输过程的三个阶段:
- 连接建立
- 邮件传送
- 连接释放
连接建立
SMTP不使用中间的邮件服务器,不管发送方和接收方邮件服务器相隔有多远,TCP连接总是在发送方和接收方这两个邮件服务器之间建立连接。
邮件传送
连接释放
消息格式
SMTP协议只支持纯文本邮件。如果想要在邮件中加入多媒体就需要进行多媒体扩展的机制。
MIME:多媒体邮件扩展
通过在邮件头部增加额外的行以声明MIME的内容类型。
邮件访问协议
邮件访问协议:从服务器获取邮件
POP:邮件协议
IMAP:网际报文存取协议
HTTP:基于web的邮件服务器
Email应用可以使用多个不同的协议。
POP协议
认证过程:
- 客户端命令:Userl:声明用户名;Pass:声明密码
- 服务器响应:+OK;-ERR
事务阶段:
- List:列出消息数量
- Retr:用编号获取消息
- Dele:删除消息
- Quit
下载并删除模式:用户如果换了客户端软件,无法重读该邮件
下载并保持模式:不同客户端都可以保留消息的拷贝
POP3也是无状态的协议
IMAP协议
所有消息统一保存在一个对方:服务器
运行用户利用文件夹组织消息
IMAP支持跨会话的用户状态
IMAP是有状态的协议
在使用IMAP时,在用户的PC上运行IMAP客户程序,然后与接收方的邮件服务器上的IMAP服务器程序建立TCP连接。用户在自己的pc上就可以操纵邮件服务器的邮箱,就像在本地操纵一样。
IMAP协议最大的好处:用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
缺点是:如果用户没有将邮件复制到自己的PC上,则邮件一直是存放在IMAP服务器上。因此,用户需要经常与IMAP服务器建立连接。