简单邮件传输协议(SMTP)是一种通过网络传输电子邮件的技术标准。
阅读本文后,您将能够:
复制文章链接
简单邮件传输协议(SMTP)是一种通过网络传输电子邮件(email)的技术标准。与其他网络协议一样,SMTP 允许计算机和服务器交换数据,无论其底层硬件或软件是什么。正如使用信封地址书写的标准化格式允许邮政服务得以运作一样,SMTP 标准化电子邮件从发件人到收件人的传输方式,使广泛的电子邮件传递成为可能。
SMTP 是一种邮件传递协议,而非邮件检索协议。邮政服务将邮件传递到邮箱,但收件人仍然必须从邮箱中提取邮件。同样,SMTP 将电子邮件传递到某个电子邮件提供商的邮件服务器,但需要使用其他协议来从邮件服务器检索该电子邮件,以便收件人读取邮件。
所有网络协议都遵循一个预定义的数据交换过程。SMTP 定义了一个在电子邮件客户端和邮件服务器之间交换数据的过程。电子邮件客户端是用户与之交互的对象:计算机或 Web 应用程序,用户可以在其中访问和发送电子邮件。邮件服务器是用于发送、接收和转发邮件的专用计算机;用户不会与邮件服务器直接进行交互。
下面概述邮件客户端和邮件服务器开始发送邮件时所传递的内容:
通常情况下,上述第一个电子邮件服务器不是实际电子邮件的最终目的地。该服务器收到客户端发来的邮件后,会与另一个邮件服务器重复此 SMTP 连接过程。第二个服务器也进行同样的操作,直到电子邮件最终到达收件人的收件箱,其位于收件人电子邮件提供商控制的邮件服务器上。
这个过程好比邮件从发件人传送到收件人的方式。邮差不会直接将信件从发件人送到收件人手上。实际上,邮差会将信件带回邮局。邮局将信件运送到另一个城镇的邮局,然后是另一个,如此重复,直至信件到达收件人。同样,电子邮件通过 SMTP 协议从一个服务器传送到另一个服务器,直至到达收件人的收件箱。
SMTP “信封”是客户端发送给邮件服务器的一组信息,说明电子邮件来自何处和将前往何处。SMTP 信封不同于电子邮件头和正文,对电子邮件收件人不可见。
SMTP 命令是预定义的基于文本的指令,它告诉客户端或服务器要采取什么操作及如何处理任何伴随的数据。将它们想象为客户端可以按下的按钮,以便使服务器能正确接收数据。
HELO/EHLO
:这些命令发出 “Hello” 并在客户端和服务器之间启动 SMTP 连接。“HELO
” 是该命令的基本版本;“EHLO
” 用于一种特别类型的 SMTP。MAIL FROM
:这个命令告诉服务器谁在发送该电子邮件。如果 Alice 试图给她的朋友 Bob 发电子邮件,客户端可能会发送 “MAIL FROM:<[email protected]>”。RCPT TO
:这个命令用于列出电子邮件的收件人。如果有多个收件人,客户端可多次发送该命令。如上例子中,Alice 的电子邮件客户端将发送: “RCPT TO: <[email protected]>"。DATA
:这个命令放在电子邮件的内容前,例如:
DATA
Date: Mon, 4 April 2022
From: Alice [email protected]
Subject: Eggs benedict casserole
To: Bob [email protected]
Hi Bob,
I will bring the eggs benedict casserole recipe on Friday.
-Alice
.
RSET
:该命令重置连接,删除所有以前传输的信息,但不关闭 SMTP 连接。RSET
在客户端发送了错误信息的情况下使用。QUIT
:结束连接。SMTP服务器是通过 SMTP 协议发送和接收电子邮件的邮件服务器。电子邮件客户端直接与电子邮件提供商的 SMTP 服务器连接,以开始发送电子邮件。SMTP 服务器中运行几个不同的软件:
在网络中,端口是接收网络数据的虚拟点;可将其比作邮件地址中的公寓号码。端口帮助计算机将网络数据分拣到正确的应用程序。网络安全措施(例如防火墙)可堵塞不必要的端口,以预防发送和接收恶意数据。
过去,SMTP 仅使用端口 25。今天,SMTP 依然使用端口 25,但也可以使用端口 465、587 和2525。
互联网消息访问协议 (IMAP) 和邮局协议 (POP) 用于将电子邮件发送到最终目的地。电子邮件客户端必须从传送链中的最后一个邮件服务器检索电子邮件,才能将其显示给用户。为此目的,客户端使用 IMAP 或 POP 协议,而非 SMTP。
要理解 SMTP 和 IMAP/POP 之间的差异,可以想象一下木板和绳子的不同之处。一块木板可将某物向前推,但不能将它拉回来。绳子可以拉动某物,但不能推动它。同样,SMTP 将电子邮件“推”到邮件服务器,而 SMTP 和 POP 将它“拉”到用户的应用程序中。
扩展简单邮件传输协议(ESMTP)是该协议的一个版本,扩展了原有功能,支持发送电子邮件附件、使用 TLS 及其他能力。几乎所有电子邮件客户端和电子邮件服务都使用 ESMTP,而非基本的 SMTP。
ESMTP 有一些额外的命令,包括 “EHLO
”(即“扩展的 hello”)消息,实现从连接开始时使用 ESMTP。
Cloudflare Email Routing 旨在简化创建和管理电子邮件地址,而无需关注额外的邮箱。通过 Email Routing,用户能创建任何数量的自定义电子邮件地址,以便在不希望分享其主要电子邮件地址的情况下使用。然后电子邮件会被路由到其首选的电子邮件收件箱,无需暴露其主要电子邮件地址。
Cloudflare Email Routing 的工作方式是修改电子邮件的 SMTP 信封,但邮件头和正文保持不变。要了解更多信息,请阅读我们的博客文章。