当前位置: 首页 > news >正文

计算机网络 | 应用层(3)-- 因特网中的电子邮件

 💓个人主页:mooridy
💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记
关注我🌹,和我一起学习更多计算机的知识
🔝🔝🔝

目录

 

3. 因特网中的电子邮件

3.1 电子邮件系统

典型邮件发送过程

3.2 SMTP

Alice 向 Bob 发送邮件步骤

SMTP 通信过程

SMTP 特性

邮件报文格式

邮件访问协议

POP3

IMAP

HTTP


3. 因特网中的电子邮件

3.1 电子邮件系统

电子邮件系统主要由三个部分组成:

  • 用户代理 (user agent):用户撰写完邮件后,用户代理将邮件发送至邮件服务器,并放入服务器的外出报文队列 (Outgoing message queue);当用户阅读邮件时,用户代理从邮件服务器的指定邮箱中获取报文。
  • 邮件服务器 (mail server):用于存放邮件,每个用户在邮件服务器上都拥有一个用户邮箱 (user mailbox),服务器负责管理和维护发送给用户的报文。同时,邮件服务器既要将邮件发送到指定服务器,也要接收邮件,兼具 SMTP 客户端和服务端的双重角色。
  • SMTP:作为应用层协议,SMTP 采用 TCP 可靠数据传输服务。

典型邮件发送过程

邮件从发送方的用户代理出发,先传输到发送方的邮件服务器,接着再传递到接收方的邮件服务器,最后分发至接收方的邮箱。例如当 Bob 要读取邮箱中的报文时,包含其邮箱的邮件服务器会通过用户名和口令进行身份鉴别。

如果 Alice 的邮件服务器无法将邮件交付给 Bob 的服务器,会将该报文保留在报文队列(message queue)中,并尝试重新发送,一般每 30 分钟左右尝试一次。若几天后仍未成功送达,服务器将删除该报文,并以电子邮件的形式通知发送方 Alice。

3.2 SMTP

SMTP 主要用于实现从发送方邮件服务器到接收方邮件服务器的报文传输。

Alice 向 Bob 发送邮件步骤

  1. Alice 调用用户代理,填写 Bob 的邮件地址,撰写邮件后指示用户代理发送。
  2. Alice 的用户代理将报文发送至她的邮件服务器,并置于报文队列中。
  3. Alice 邮件服务器上的 SMTP 客户端发现队列中的报文后,与 Bob 邮件服务器上的 SMTP 服务器建立 TCP 连接。
  4. 完成初始 SMTP 握手后,SMTP 客户端通过 TCP 连接发送 Alice 的报文。
  5. Bob 邮件服务器上的 SMTP 服务端接收报文,并将其存入 Bob 的用户邮箱。
  6. Bob 在方便时调用用户代理读取邮件。

SMTP 通信过程

  1. SMTP 客户端尝试与 SMTP 服务器的 25 端口建立 TCP 连接,若服务器未启动,客户端后续会再次尝试连接。
  2. 连接建立后,SMTP 客户端和服务端在传输信息前会进行握手,客户端在握手时指明发送方和接收方的邮件地址。
  3. 握手完成后,客户端发送报文。
  4. 若客户端还有其他报文需发送至该服务器,可在同一 TCP 连接上重复上述操作;若无,则指示 TCP 关闭连接 。
  5. 例子:客户的主机名为crepes, fr,服务器的主机名为hamburger. eduo以C:开头的ASCII码文本行正是客户交给其TCP套接字的那些行,以S:开头的ASCII码则是服务器发送给其TCP套接字的那些行。一旦创建了 TCP连接,就开始了下列过程

SMTP 特性

  • 持续连接:当发送邮件服务器有多个报文需发往同一接收邮件服务器时,可通过同一个 TCP 连接完成所有报文的发送。每个报文以新的MAIL FROM: crepes, fr开头,以独立句点表示邮件结束,所有邮件发送完毕后发送QUIT命令。
  • 与 HTTP 对比
    • 传输模式:SMTP 是推协议,即发送邮件服务器主动将文件推向接收邮件服务器;HTTP 是拉协议,用户从 Web 服务器获取信息。
    • 数据格式:SMTP 要求每个报文(包括报文主体)采用 7 比特 ASCII 码格式,而 HTTP 数据无此限制。
    • 传输方式:HTTP 可能为网页中的每个对象分别发送一个请求,SMTP 则将所有报文对象整合在一个报文中传输。

邮件报文格式

  • 首部

    • From首部行:必填项。
    • To首部行:必填项。
    • Subject首部行:可选项。
    • 其他可选首部行。
  • 报文体:采用 ASCII 码格式。

邮件访问协议

POP3

POP3 协议的工作流程分为三个阶段:

  • 特许阶段:用户代理以明文形式发送用户名和口令,用于用户身份鉴别。
  • 事务处理阶段:用户代理获取报文,并可进行下载、标记删除、取消删除标记、获取邮件统计信息等操作。
  • 更新阶段:用户代理发送结束命令,会话终止,邮件服务器删除标记为删除的报文。

POP3 存在的缺陷:用户虽能将邮件下载到本地并创建文件夹管理,但该协议不支持在远程创建文件夹并对报文进行归类。这导致用户在不同设备上使用时,需重新创建文件夹管理邮件,操作较为繁琐。

IMAP

相较于 POP3,IMAP 有以下改进:

  • 服务器将每个邮件报文与文件夹关联,支持用户创建文件夹、移动邮件,还提供在文件夹中阅读、删除邮件以及查询邮件的功能。
  • 允许用户代理按需获取邮件报文的部分内容,避免下载如含音频或视频等大容量邮件的全部内容。
HTTP

用户使用普通浏览器作为用户代理,通过 HTTP 从邮件服务器获取邮件,也使用 HTTP 将邮件发送至邮件服务器。不过,邮件服务器之间仍采用 SMTP 协议进行通信。

相关文章:

  • 使用银行卡二要素API让支付更加安心
  • 北斗导航 | Transformer增强BiLSTM网络的GNSS伪距观测量误差探测
  • B. And It‘s Non-Zero
  • 提示词的神奇魔力——如何通过它改变AI的输出
  • 免费送源码:Java+ssm+HTML 三分糖——甜品店网站设计与实现 计算机毕业设计原创定制
  • springboot + mybatis 需要写 .xml吗
  • Java—— 五道算法水题
  • 力扣热题100题解(c++)—链表
  • 架构师备考-设计模式23种及其记忆特点
  • 【虚幻C++笔记】碰撞检测
  • 指标监控:Prometheus 结合 Grafana,监控redis、mysql、springboot程序等等
  • 一文详解Adobe Photoshop 2025安装教程
  • Springboot集成SSE实现消息推送+RabbitMQ解决集群环境下SSE通道跨节点事件推送问题
  • 【BBDM】main.py -- notes
  • CrewAI Community Version(二)——Agent
  • springboot入门-DTO数据传输层
  • 大模型的使用
  • C++学习之路,从0到精通的征途:List类的模拟实现
  • 【概念】什么是 JWT Token?
  • Gewechat启动启动报错
  • 张家界乒乓球公开赛设干部职级门槛引关注,回应:仅限嘉宾组
  • 理想汽车副总裁刘杰:不要被竞争牵着鼻子走,也不迷信护城河
  • 锚定“双一流”战略坐标,福建农林大学向全球英才“伸出橄榄枝”
  • 为何不当教练转型高校管理岗?苏炳添曾吐露过真实的想法
  • 咖啡与乳腺健康之间,究竟有着怎样的复杂关系?
  • 安徽铁塔回应“指挥调度中心大屏现不雅视频”:将严肃处理