image.png

发送邮件 SMTP

  • Email与支撑Email应用的SMTP
  • 采用的服务模型:C/S mode
    • Client:发送方的邮件服务器。
    • Sevrver:接收方的邮件服务器。
  • 运行在TCP:
    • 端口号:25
  • 与HTTP的区别,资源在客户端。
  • 由三个部分组成:
    • 用户代理:允许用户编写,转发,保存,阅读邮件。
    • SMTP:用于在不同邮件服务器之间传输报文。
    • 邮件服务器:保存邮件。
  • 直接传输:从发送方服务器到接收方服务器;
    • 传输的3个阶段
      • 握手
      • 传输报文
      • 关闭
  • 命令/响应交互
    • 命令: ASCII文本
    • 响应:状态码和状态信息
  • 要求报文(首部和主体)为7位ASCII编码
  • SMTP使用持久连接
  • SMTP服务器使用 CRLF决定报文的尾部。

邮件报文的格式

  1. 220 mx0b-00000d03.pphosted.com ESMTP mfa-m0102882
  2. HELO mycomputer.stanford.edu
  3. 250 mx0b-00000d03.pphosted.com Hello [223.104.194.229], pleased to meet you
  4. MAIL FROM: URL_sender
  5. 250 2.1.0 Sender ok
  6. RCPT TO: URL_receiver
  7. 250 2.1.5 Recipient ok.
  8. DATA
  9. 354 End data with <CR><LF>.<CR><LF>
  10. From: sunetid@stanford.edu
  11. To: sunetid@stanford.edu
  12. Subject: Hello from CS144 Lab 0!
  13. 250 2.0.0 33h24dpdsr-1 Message accepted for delivery
  14. QUIT

报文由一个首部行,与一个可能的主体报文组成。

访问邮件

SMTP决定了用户代理与发送方,发送方与接收方之间的交互。接受方到用户代理之间的交互由三种可以采用的协议:

  • POP:邮局访问协议(Post Office Protocol)
    • 用户身份确认(用户代理<->服务器)并下载。
  • IMAP:Internet邮件访问协议(Internet Mail Access Protocol)[RFC 1730]
    • 更多特性(更复杂);
    • 在服务器上处理存储的报文;
  • HTTP:Hotmail,Yahoo! Mail等 很方便。

POP3 协议

用户确认阶段:登录服务器。

  1. +OK POP3 server ready
  2. user bob
  3. +OK
  4. pass hahaha
  5. +OK user succeessfully logged on

事务处理阶段

  1. C: list
  2. S: 1 498
  3. S: 2 912
  4. S: .
  5. C: retr 1
  6. S: <massage 1 contents>
  • POP3的会话是不被保留的。且POP3是本地管理文件夹。

IMAP

IMAP服务器将每个报文与一个文件夹联系起来

  • 允许用户用目录来组织报文
  • 允许用户读取报文组件
  • IMAP在会话过程中保留用户状态:
    • 目录名、报文ID与目录名之间映射
  • 远程管理文件夹