发送邮件 SMTP
- Email与支撑Email应用的SMTP
- 采用的服务模型:C/S mode
- Client:发送方的邮件服务器。
- Sevrver:接收方的邮件服务器。
- 运行在TCP:
- 端口号:25
- 与HTTP的区别,资源在客户端。
- 由三个部分组成:
- 用户代理:允许用户编写,转发,保存,阅读邮件。
- SMTP:用于在不同邮件服务器之间传输报文。
- 邮件服务器:保存邮件。
- 直接传输:从发送方服务器到接收方服务器;
- 传输的3个阶段
- 握手
- 传输报文
- 关闭
- 传输的3个阶段
- 命令/响应交互
- 命令: ASCII文本
- 响应:状态码和状态信息
- 要求报文(首部和主体)为7位ASCII编码
- SMTP使用持久连接
- SMTP服务器使用 CRLF决定报文的尾部。
邮件报文的格式
220 mx0b-00000d03.pphosted.com ESMTP mfa-m0102882
HELO mycomputer.stanford.edu
250 mx0b-00000d03.pphosted.com Hello [223.104.194.229], pleased to meet you
MAIL FROM: URL_sender
250 2.1.0 Sender ok
RCPT TO: URL_receiver
250 2.1.5 Recipient ok.
DATA
354 End data with <CR><LF>.<CR><LF>
From: sunetid@stanford.edu
To: sunetid@stanford.edu
Subject: Hello from CS144 Lab 0!
250 2.0.0 33h24dpdsr-1 Message accepted for delivery
QUIT
报文由一个首部行,与一个可能的主体报文组成。
访问邮件
SMTP决定了用户代理与发送方,发送方与接收方之间的交互。接受方到用户代理之间的交互由三种可以采用的协议:
- POP:邮局访问协议(Post Office Protocol)
- 用户身份确认(用户代理<->服务器)并下载。
- IMAP:Internet邮件访问协议(Internet Mail Access Protocol)[RFC 1730]
- 更多特性(更复杂);
- 在服务器上处理存储的报文;
- HTTP:Hotmail,Yahoo! Mail等 很方便。
POP3 协议
用户确认阶段:登录服务器。
+OK POP3 server ready
user bob
+OK
pass hahaha
+OK user succeessfully logged on
事务处理阶段
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <massage 1 contents>
- POP3的会话是不被保留的。且POP3是本地管理文件夹。
IMAP
IMAP服务器将每个报文与一个文件夹联系起来
- 允许用户用目录来组织报文
- 允许用户读取报文组件
- IMAP在会话过程中保留用户状态:
- 目录名、报文ID与目录名之间映射
- 远程管理文件夹