计算机网络——11EMail

EMail

电子邮件(EMail)

3个主要组成部分

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

用户代理

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

邮件服务器

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

EMail:SMTPRFC 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与目录名 之间映射
相关推荐
Best-Wishes8 小时前
好靶场杯第一届-古法 流量包分析
计算机网络·web安全·安全威胁分析
黄俊懿14 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师
范什么特西19 小时前
计算机网络
计算机网络
却道天凉_好个秋20 小时前
计算机网络:DNS总结
网络·计算机网络·dns
Syc1102g21 小时前
在 Linux CentOS 系统中设置静态 IP
linux·网络·计算机网络·个人开发
我爱cope2 天前
【计算机网络 | 网络层10:OSPF 与 BGP:自治系统内部和互联网之间如何路由?】
网络·学习·计算机网络·智能路由器
shiyi.十一3 天前
第8章:计算机网络中的安全 — 知识要点与架构
计算机网络·安全·架构
一条泥憨鱼3 天前
【从0开始学习计算机网络】| WebSocket-握手、全双工和心跳
websocket·计算机网络·网络安全·https·dns
2501_916007474 天前
免费抓包工具 Windows 和 Mac 怎么选?根据平台来选择工具
网络协议·计算机网络·网络安全·ios·adb·https·udp
一条泥憨鱼4 天前
【从0开始学习计算机网络】| DNS 污染、劫持与 CDN:你的网页是怎么被“掉包“的
学习·计算机网络·安全·http·https·dns