计算机网络——11EMail

EMail

电子邮件(EMail)

3个主要组成部分

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

用户代理

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

邮件服务器

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

EMail:SMTP[RFC 2821]

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

邮件发送流程

举例:Alice给Bob发送报文

  • Alice使用用户代理撰写邮件并发送给 bob@someschool.edu
  • 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: alice@crepes.fr #邮件来自的邮箱
    S: 250 alice@crepes.fr... Sender ok #接受成功
    C: RCPT TO: bob@hamburger.edu #邮件去往的邮箱
    S: 250 bob@hamburger.edu ... 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与目录名 之间映射
相关推荐
云计算DevOps-韩老师39 分钟前
【网络云计算】2024第48周-每日【2024/11/20】小测-理论题-计算机网络概述
计算机网络·网络设备
Hello Dam1 小时前
【计算机网络】物理层
计算机网络·物理层
_Power_Y3 小时前
计算机网络:应用层知识点概述及习题
计算机网络
co0t3 小时前
计算机网络(14)ip地址超详解
服务器·tcp/ip·计算机网络
C++忠实粉丝3 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
吃土少女古拉拉4 小时前
什么是计算机网络
计算机网络·学习笔记
C++忠实粉丝5 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
->yjy17 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ18 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络
战术摸鱼大师1 天前
计算机网络-理论部分(二):应用层
计算机网络