📜  简单邮件传输协议 (SMTP)

📅  最后修改于: 2022-05-13 01:57:02.107000             🧑  作者: Mango

简单邮件传输协议 (SMTP)

电子邮件正在成为当今互联网上最有价值的服务之一。大多数互联网系统使用 SMTP 作为一种将邮件从一个用户传输到另一个用户的方法。 SMTP 是一种推送协议,用于发送邮件,而 POP(邮局协议)或 IMAP(互联网消息访问协议)用于在接收方检索这些电子邮件。

SMTP 基础知识
SMTP 是一种应用层协议。想要发送邮件的客户端打开一个到 SMTP 服务器的 TCP 连接,然后通过该连接发送邮件。 SMTP 服务器是一种永远在线的侦听模式。一旦它侦听来自任何客户端的 TCP 连接,SMTP 进程就会通过端口 25 发起连接。成功建立 TCP 连接后,客户端进程会立即发送邮件。

SMTP 协议

SMTP 模型有两种类型:

  1. 端到端方法
  2. 存储转发方法

端到端模型用于不同组织之间的通信,而存储和转发方法用于组织内部。想要发送邮件的 SMTP 客户端将直接联系目标主机 SMTP,以便将邮件发送到目标。 SMTP 服务器会将邮件保留给它自己,直到它被成功复制到接收者的 SMTP。
客户端 SMTP 是发起会话的那个,所以我们称它为客户端 SMTP,而服务器 SMTP 是响应会话请求的那个,所以我们称它为接收者 SMTP。客户端 SMTP 将启动会话,接收者 SMTP 将响应请求。

SMTP系统模型

在 SMTP 模型中,用户与用户代理 (UA) 打交道,例如 Microsoft Outlook、Netscape、Mozilla 等。为了使用 TCP 交换邮件,使用了 MTA。发送邮件的用户不必处理 MTA,因为设置本地 MTA 是系统管理员的责任。 MTA 维护一个小邮件队列,以便在收件人不可用的情况下安排重复发送邮件。 MTA 将邮件传递到邮箱,然后用户代理可以下载信息。

SMTP_1

SMTP-client 和 SMTP-server 都应该有 2 个组件:

  1. 用户代理 (UA)
  2. 本地 MTA

发送方和接收方之间的通信:
发件人的用户代理准备邮件并将其发送到 MTA。 MTA 的职责是将邮件通过网络传输到收件人的 MTA。要发送邮件,系统必须有一个客户端 MTA,而要接收邮件,系统必须有一个服务器 MTA。

发送电子邮件:
邮件由客户端和服务器之间的一系列请求和响应消息发送。发送的消息由标头和正文组成。空行用于终止邮件头,空行之后的所有内容都被视为消息的正文,这是一个 ASCII字符序列。消息正文包含收据读取的实际信息。

接收电子邮件:
服务器端的用户代理在特定时间间隔检查邮箱。如果收到任何信息,它会通知用户该邮件。当用户尝试阅读邮件时,它会显示一个电子邮件列表,其中包含邮箱中每封邮件的简短描述。通过选择任何一个邮件用户可以在终端上查看其内容。

一些 SMTP 命令:

  • HELO – 向服务器标识客户端,完全限定域名,每个会话仅发送一次
  • MAIL – 发起消息传输,发起者的完全限定域
  • RCPT – 在 MAIL 之后,标识收件人,通常是收件人的完全限定名称,对于多个收件人,每个收件人使用一个 RCPT
  • DATA——逐行发送数据