计算机网络——11EMail

EMail

电子邮件(EMail)

3个主要组成部分

  • 用户代理
  • 邮件服务器
  • 简单邮件传输协议:SMTP

用户代理

  • 又名"邮件阅读器"
  • 撰写、编辑和阅读邮件
  • 输入和输出邮件保存在服务器上

邮件服务器

  • 邮箱中管理和维护发送给用户的邮件
  • 输出报文队列保持待发送邮件报文
  • 邮件服务器之间的SMTP协议:发送emmail 报文
    • 客户:发送方邮件服务器
    • 服务器:接收端邮件服务器

EMail:SMTP[RFC 2821]

  • 使用TCP在客户端和服务器之间传送报文,端口号为25
  • 直接传输:从发送方服务器到接收方服务器
  • 传输的三个阶段
    • 握手
    • 传输报文
    • 关闭
  • 命令/相应交互
    • 命令:ASCII文本
    • 响应:状态码和状态信息
  • 报文必须为7位ASCII码

邮件发送流程

举例:Alice给Bob发送报文

  • Alice使用用户代理撰写邮件并发送给 [email protected]
  • Alice的用户代理将邮件发送到她的邮件服务器;邮件放在报文队列中
  • SMTP的客户端打开到Bob邮件服务器的TCP连接(建立TCP连接)
  • SMTP客户端通过TCP连接发送Alice的邮件
  • Bob的邮件服务器将邮件放到Bob的邮箱(POP3,)
  • Bob调用他的用户代理阅读邮件

简单的SMTP交互

以下是两个右键服务器进行SMTP交互的流程

  • C:客户,发送方邮件服务器

  • S:服务器,接收方邮件服务器

    S: 220 hamburger.edu
    C: HELO crepes.fr
    S: 250 Hello crepes.fr, pleased to meet you
    C: MAIL FROM: [email protected] #邮件来自的邮箱
    S: 250 [email protected]... Sender ok #接受成功
    C: RCPT TO: [email protected] #邮件去往的邮箱
    S: 250 [email protected] ... Recipient ok # 接受成功
    C: DATA # 邮件信息
    S: 354 Enter mail, end with "." on a line by itself
    C: Do you like ketchup?
    C: How about pickles?
    C: .
    S: 250 Message accepted for delivery
    C: QUIT
    S: 221 hamburger.edu closing connection

SMTP 总结

  • SMTP使用持久连接
  • SMTP要求报文(首部和主体)为7位ASCII编码
  • SMTP服务器使用CRLF,CRLF决定报文的尾部

HTTP比较

  • HTTP:拉(pull)
  • SMTP:推(push)
  • 二者都是ASCII形式的命令/响应交互、状态码
  • HTTP:每个对象封装在各自的响应报文中
  • SMTP:多个对象包含在一个报文中

邮件报文格式

SMTP:交换email报文的协议

RFC 822:文本交换的标准

  • 首部行:如

    • To:
    • From:
    • Subject:

    与SMTP命令不同

  • 主体

    • 报文,只能是ASCII码字符

报文格式:多媒体拓展

  • MIME:多媒体邮件扩展(multimedia mail extension), RFC 2045, 2056
  • 在报文首部用额外的行申明MIME内容类型

邮件访问协议

  • SMTP: 传送到接收方的邮件服务器
  • 邮件访问协议:从服务器访问邮件 (3种方式)
    • POP3:邮局访问协议(Post Office Protocol)[RFC 1939]
      • 用户身份确认 (代理<-->服务器) 并下载
    • IMAP:Internet邮件访问协议(Internet Mail Access Protocol)[RFC 1730]
      • 更多特性和功能 (更复杂) ;在服务器上处理存储的报文
    • HTTP:Hotmail , Yahoo! Mail等
      • 方便

POP3协议

用户确认阶段

  • 客户端命令:
    • user: 申明用户名
    • pass: 口令
  • 服务器响应
    • +OK
    • -ERR

事物处理阶段

客户端:

  • list: 报文号列表

  • retr: 根据报文号检索报文

  • dele: 删除

  • quit:关闭连接

    用户确认阶段

    S: +OK POP3 server ready
    C: user bob
    S: +OK
    C: pass hungry
    S: +OK user successfully logged on

    事物处理阶段

    C: list
    S: 1 498
    S: 2 912
    S: .
    C: retr 1
    S: <message 1 contents>
    S: .
    C: dele 1
    C: retr 2
    S: <message 1 contents>
    S: .
    C: dele 2
    C: quit
    S: +OK POP3 server signing off

  • 先前的例子使用 "下载 并删除"模式。

    • 如果改变客户机,Bob不 能阅读邮件
  • "下载并保留":不同 客户机上为报文的拷贝

  • POP3在会话中是无状态的

IMAP

  • IMAP服务器将每个报文 与一个文件夹联系起来
  • 允许用户用目录来组织 报文
  • 允许用户读取报文组件
  • IMAP在会话过程中保留 用户状态:
    • 目录名、报文ID与目录名 之间映射
相关推荐
努力敲代码呀~2 小时前
前端高频面试题2:浏览器/计算机网络
前端·计算机网络·html
gadiaola2 小时前
【计算机网络】第3章:传输层—TCP 拥塞控制
网络·网络协议·tcp/ip·计算机网络
fei_sun6 小时前
【计算机网络】三报文握手建立TCP连接
网络·tcp/ip·计算机网络
m0_6371469315 小时前
计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程
笔记·tcp/ip·计算机网络
孤寂大仙v1 天前
【计算机网络】非阻塞IO——select实现多路转接
linux·计算机网络
Amo Xiang1 天前
计算机网络第2章(下):物理层传输介质与核心设备全面解析
计算机网络·传输介质·物理层·物理设备
饮长安千年月1 天前
JavaSec-SpringBoot框架
java·spring boot·后端·计算机网络·安全·web安全·网络安全
Web极客码2 天前
如何轻松、安全地管理密码(新手指南)
计算机网络·安全·web安全·网络安全
九转苍翎2 天前
计算机网络(6)——局域网
计算机网络·局域网
孤寂大仙v3 天前
【计算机网络】网络层IP协议与子网划分详解:从主机通信到网络设计的底层逻辑
tcp/ip·计算机网络·php