电子邮件如何工作

Person typing on computer
电子邮件让我们能够在几秒钟内联系到世界上任何人。
James Nielsen/法新社/Getty Images

每天,互联网用户互相发送数十亿封电子邮件。如果您经常上网,您自己可能每天发送十多封电子邮件,甚至不假思索。显然,电子邮件已成为一种极其流行的通信工具。

您有没有想过电子邮件是如何从您的计算机发送到地球另一端的朋友那里的?POP3 服务器是什么,它是如何保存您的邮件的?答案可能会让您惊讶,因为事实证明,电子邮件的核心是一个极其简单的系统。在本文中,我们将深入探讨电子邮件及其工作原理。

广告

电子邮件消息

根据《达尔文杂志:原动力》的记载,第一封电子邮件是工程师雷·汤姆林森(Ray Tomlinson)于1971年发送的。在此之前,您只能向同一台机器上的用户发送消息。汤姆林森的突破在于,他能够使用@符号指定接收机器,从而将消息发送到互联网上的其他机器。

电子邮件消息一直都只不过是一条简单的文本消息——发送给收件人的一段文本。最初乃至今天,电子邮件消息往往是简短的文本片段,尽管现在添加附件的能力使得许多消息变得相当长。然而,即使有附件,电子邮件消息仍然是文本消息——当我们讲到附件部分时,我们将看到原因。

电子邮件客户端

您今天可能已经收到了几封电子邮件。要查看它们,您需要使用某种电子邮件客户端。许多人使用知名、独立的客户端,如 Microsoft Outlook、Outlook Express、Eudora 或 Pegasus。订阅 Hotmail 或 Yahoo 等免费电子邮件服务的人使用显示在网页中的电子邮件客户端。如果您是 AOL 客户,您将使用 AOL 的电子邮件阅读器。无论您使用哪种类型的客户端,它通常会做四件事:

  • 通过显示邮件头向您展示邮箱中所有邮件的列表。邮件头会显示发件人、邮件主题,还可能显示邮件的时间、日期和邮件大小。
  • 让您选择邮件头并阅读电子邮件消息的正文。
  • 让您创建新邮件并发送它们。您输入收件人的电子邮件地址和邮件主题,然后输入邮件正文。
  • 让您向发送的邮件添加附件,并保存收到的邮件中的附件。

复杂的电子邮件客户端可能拥有各种花哨的功能,但其核心功能就是这些。

广告

一个简单的电子邮件服务器

电子邮件服务器监听特定端口以接收传入消息。了解电子邮件服务器并找出简单电子邮件服务器如何中继消息。
© 十万个为什么

鉴于您的机器上有一个电子邮件客户端,您已准备好发送和接收电子邮件。您所需要的就是一个供客户端连接的电子邮件服务器。让我们设想一下最简单的电子邮件服务器会是什么样子,以便对该过程有一个基本的了解。然后我们将看看真实的系统。

如果您阅读过《网站服务器如何工作》,那么您就知道互联网上的机器可以运行充当服务器的软件应用程序。目前,互联网上有数百万台机器正在运行网络服务器、FTP 服务器、telnet 服务器和电子邮件服务器。这些应用程序全天候在服务器机器上运行,并监听特定的端口,等待人员或程序连接到该端口。最简单的电子邮件服务器将像这样工作:

广告

  1. 它会有一个电子邮件账户列表,服务器上每个可以接收电子邮件的人都对应一个账户。我的账户名可能是mbrain,约翰·史密斯的可能是jsmith,等等。
  2. 它会为列表中的每个账户保留一个文本文件。因此,服务器的目录下会有一个名为 MBRAIN.TXT 的文本文件,另一个名为 JSMITH.TXT,等等。
  3. 如果有人想给我发消息,这个人会在电子邮件客户端中编写一条文本消息(“Marshall,我们周一可以共进午餐吗?John”),并指明消息应发送给 mbrain。当此人按下发送按钮时,电子邮件客户端将连接到电子邮件服务器,并将收件人姓名 (mbrain)、发件人姓名 (jsmith) 和消息正文传递给服务器。
  4. 服务器会格式化这些信息,并将它们附加到 MBRAIN.TXT 文件的底部。文件中的条目可能如下所示:
  5. 服务器会格式化这些信息,并将它们附加到 MBRAIN.TXT 文件的底部。文件中的条目可能如下所示:发件人:jsmith 收件人:mbrain Marshall,我们周一可以共进午餐吗?John

服务器可能还会将其他几条信息保存到文件中,例如接收的时间和日期以及主题行;但总的来说,您可以看到这是一个极其简单的过程。

我们将在下一节中介绍 SMTP 服务器。

广告

更复杂的服务器

电子邮件文件以文本格式保存在服务器上,并在请求时发送到您的计算机。了解电子邮件文件是如何传输的。
© 十万个为什么

当其他人向 mbrain 发送邮件时,服务器会简单地按照它们到达的顺序将这些消息附加到文件的底部。文本文件会累积五到十条消息,最终我将登录阅读它们。当我想查看我的电子邮件时,我的电子邮件客户端会连接到服务器机器。在最简单的系统中,它会:

  1. 要求服务器发送 MBRAIN.TXT 文件的副本
  2. 要求服务器擦除并重置 MBRAIN.TXT 文件
  3. 将 MBRAIN.TXT 文件保存到我的本地机器上
  4. 将文件解析为单独的消息(使用“发件人:”作为分隔符)
  5. 以列表形式显示所有邮件头

当我双击邮件头时,它会在文本文件中找到该邮件并显示其正文。

广告

如您所见,这是一个非常简单的系统。令人惊讶的是,您每天使用的真实电子邮件系统并没有比这复杂多少。

真实的电子邮件系统

对于绝大多数人来说,现在真实的电子邮件系统由运行在服务器机器上的两种不同服务器组成。一种称为SMTP 服务器,SMTP 是 Simple Mail Transfer Protocol(简单邮件传输协议)的缩写。SMTP 服务器处理出站邮件。另一种是POP3 服务器IMAP 服务器,两者都处理入站邮件。POP 是 Post Office Protocol(邮局协议)的缩写,IMAP 是 Internet Mail Access Protocol(互联网邮件访问协议)的缩写。一个典型的电子邮件服务器看起来像这样:

SMTP 服务器监听众所周知的端口号 25,POP3 监听端口 110,IMAP 使用端口 143(有关端口的详细信息,请参阅《网站服务器如何工作》)。

广告

SMTP 服务器

SMTP 服务器处理所有出站电子邮件消息。了解 SMTP 服务器如何工作并查看简单电子邮件服务器系统的图表。
© 十万个为什么

每当您发送一封电子邮件时,您的电子邮件客户端都会与 SMTP 服务器交互以处理发送。您主机上的 SMTP 服务器可能会与其他 SMTP 服务器通信以传递电子邮件。

我们假设我想发送一封电子邮件。我的电子邮件 ID 是 brain,我的账户在 十万个为什么.com 上。我想发送电子邮件到 jsmith@mindspring.com。我正在使用像 Outlook Express 这样的独立电子邮件客户端。

广告

当我在 十万个为什么 设置我的账户时,我告诉 Outlook Express 邮件服务器的名称 — mail.十万个为什么.com。当我撰写一条消息并按下发送按钮时,会发生以下情况:

  1. Outlook Express 使用端口 25 连接到 mail.十万个为什么.com 上的 SMTP 服务器。
  2. Outlook Express 与 SMTP 服务器进行通信,告诉 SMTP 服务器发件人和收件人的地址,以及邮件正文。
  3. SMTP 服务器获取“收件人”地址 (jsmith@mindspring.com),并将其分解为两部分:收件人姓名 (jsmith) 和域名 (mindspring.com)。如果“收件人”地址是 十万个为什么.com 上的另一个用户,SMTP 服务器会简单地将消息传递给 十万个为什么.com 的 POP3 服务器(使用一个名为投递代理的小程序)。由于收件人在另一个域,SMTP 需要与该域通信。
  4. SMTP 服务器与域名服务器DNS进行通信(有关详细信息,请参阅《网站服务器如何工作》)。它说:“您能告诉我 mindspring.com 的 SMTP 服务器的 IP 地址吗?”DNS 会回复 Mindspring 运营的一个或多个 SMTP 服务器的 IP 地址。
  5. 十万个为什么.com 的 SMTP 服务器使用端口 25 连接到 Mindspring 的 SMTP 服务器。它与我的电子邮件客户端与 十万个为什么 的 SMTP 服务器进行的简单文本对话相同,并将消息传递给 Mindspring 服务器。Mindspring 服务器识别出 jsmith 的域名在 Mindspring,因此它将消息传递给 Mindspring 的 POP3 服务器,后者将消息放入 jsmith 的邮箱中。

如果由于某种原因,十万个为什么 的 SMTP 服务器无法连接到 Mindspring 的 SMTP 服务器,则消息会进入队列。大多数机器上的 SMTP 服务器使用一个名为sendmail的程序进行实际发送,因此这个队列称为sendmail 队列。Sendmail 会定期尝试重新发送其队列中的消息。例如,它可能会每 15 分钟重试一次。四小时后,它通常会发送一封邮件告诉您出现了一些问题。五天后,大多数 sendmail 配置会放弃并退回未投递的邮件给您。

SMTP 服务器理解非常简单的文本命令,如 HELO、MAIL、RCPT 和 DATA。最常见的命令有:

  • HELO - 自我介绍
  • EHLO - 自我介绍并请求扩展模式
  • MAIL FROM: - 指定发件人
  • RCPT TO: - 指定收件人
  • DATA - 指定消息正文(To、From 和 Subject 应为前三行。)
  • RSET - 重置
  • QUIT - 退出会话
  • HELP - 获取命令帮助
  • VRFY - 验证地址
  • EXPN - 扩展地址
  • VERB - 详细模式

广告

POP3 和 IMAP 服务器

塔米·普鲁特和她的丈夫莱昂阅读了他们儿子在伊拉克服役时发来的电子邮件。
George Frey/ Getty Images

在 POP3 的最简单实现中,服务器确实维护了一组文本文件——每个电子邮件账户一个。当消息到达时,POP3 服务器只是将其附加到收件人文件的底部。

当您检查电子邮件时,您的电子邮件客户端使用端口 110 连接到 POP3 服务器。POP3 服务器需要账户名和密码。登录后,POP3 服务器会打开您的文本文件并允许您访问它。与 SMTP 服务器一样,POP3 服务器也理解一组非常简单的文本命令。以下是最常见的命令:

广告

  • USER - 输入您的用户 ID
  • PASS - 输入您的密码
  • QUIT - 退出 POP3 服务器
  • LIST - 列出消息及其大小
  • RETR - 检索消息,传入消息编号
  • DELE - 删除消息,传入消息编号
  • TOP - 显示消息的前 x 行,传入消息编号和行数

您的电子邮件客户端连接到 POP3 服务器,并发出一系列命令,将您的电子邮件副本传输到您的本地机器。通常,它随后会从服务器删除这些消息(除非您已告知电子邮件客户端不要这样做)。

您可以看到,POP3 服务器只是充当电子邮件客户端与包含您消息的文本文件之间的接口。再次,您可以看到 POP3 服务器极其简单。如果您愿意,可以通过 telnet 连接到端口 110 并亲自发出命令(有关 telnet 到服务器的详细信息,请参阅《网站服务器如何工作》)。

IMAP 服务器

如您所见,POP3 协议非常简单。它允许您将一系列消息存储在服务器上的文本文件中。您的电子邮件客户端(例如 Outlook Express)可以连接到您的 POP3 电子邮件服务器,并将 POP3 文本文件中的消息下载到您的 PC 上。这就是您使用 POP3 所能做的一切。

许多用户希望对他们的电子邮件做更多的事情,他们希望电子邮件保留在服务器上。将电子邮件保留在服务器上的主要原因是允许用户从各种机器连接。使用 POP3,一旦您下载了电子邮件,它就会留在您下载到的机器上。如果您想在台式机和笔记本电脑上都阅读电子邮件(取决于您是在办公室工作还是在路上),POP3 会让事情变得困难。

IMAP(Internet Mail Access Protocol,互联网邮件访问协议)是一种更高级的协议,可以解决这些问题。使用 IMAP,您的邮件会保留在电子邮件服务器上。您可以将邮件组织到文件夹中,所有文件夹也都存在于服务器上。当您搜索电子邮件时,搜索是在服务器机器上进行的,而不是在您的机器上。这种方法使您可以非常容易地从任何机器访问您的电子邮件,并且无论您使用哪台机器,您都可以访问所有文件夹中的所有邮件。

我们将在下一节中介绍 IMAP 问题和附件。

广告

IMAP 问题和附件

随着电子邮件变得越来越复杂,附件也变得越来越复杂,为我们提供了视频邮件等选项。
Getty Images

您的电子邮件客户端使用端口 143 连接到 IMAP 服务器。然后,电子邮件客户端发出一组文本命令,允许它执行诸如列出服务器上的所有文件夹、列出文件夹中的所有消息头、从服务器获取特定电子邮件消息、删除服务器上的消息或搜索服务器上所有电子邮件等操作。

IMAP 可能出现的一个问题涉及这个简单的问题:“如果我所有的电子邮件都存储在服务器上,那么当我没有连接到互联网时,我如何阅读我的邮件?”为了解决这个问题,大多数电子邮件客户端都有一些方法可以在本地机器上缓存电子邮件。例如,客户端会下载所有消息并将其完整内容存储在本地机器上(就像与 POP3 服务器通信一样)。这些消息仍然存在于 IMAP 服务器上,但您现在在您的机器上有了副本。这使您即使没有连接到互联网也可以阅读和回复电子邮件。下次您建立连接时,您会下载所有在断开连接期间收到的新消息,并发送所有在断开连接期间编写的邮件。

广告

附件

您的电子邮件客户端允许您向发送的电子邮件添加附件,也允许您保存收到的邮件中的附件。附件可能包括文字处理文档、电子表格、音频文件、快照和软件片段。通常,附件不是文本(如果是文本,您只需将其包含在邮件正文中)。由于电子邮件消息只能包含文本信息,而附件不是文本,因此存在一个需要解决的问题。

在电子邮件的早期,您手动解决了这个问题,使用了一个名为uuencode的程序。uuencode 程序假定文件包含二进制信息。它从二进制文件中提取 3 个字节并将它们转换为四个文本字符(也就是说,它一次取 6 位,将 32 添加到 6 位的值中,并创建一个文本字符——请参阅《位和字节如何工作》以了解更多关于 ASCII 字符的信息)。因此,uuencode 生成的是原始二进制文件的编码版本,其中只包含文本字符。在电子邮件的早期,您会自己运行 uuencode 并将 uuencode 后的文件粘贴到您的电子邮件消息中。

考虑到它对社会的巨大影响,永远改变了我们的沟通方式,今天的电子邮件系统是有史以来设计最简单的系统之一!系统中有一些部分,比如 sendmail 中的路由规则,会变得复杂,但基本系统却极其简单明了。下次您发送电子邮件时,您将确切地知道它是如何到达目的地的。

广告

免费和付费电子邮件服务

Gmail
Google 和 Yahoo! 等服务为订阅者提供免费电子邮件账户。
图片来源:Google

无论是工作还是与家人朋友保持联系,人们都依赖互联网发送和接收电子邮件。根据皮尤互联网与美国生活项目(Pew Internet and American Life Project)2007年3月的一项研究,91%的美国互联网用户曾上网发送或阅读电子邮件。同一消息来源报告称,56%的电子邮件用户在日常生活中会发送或阅读电子邮件 [来源:电子邮件营销报告]。

市场研究公司The Radicati Group在2007年10月的一项研究报告称,2006年每天发送1830亿封电子邮件。鉴于这些数字,电子邮件服务提供商种类繁多也就不足为奇了。选择包括提供免费电子邮件服务的 Gmail 或 Yahoo!,或收取费用的提供商,如 America Online、Apple 或 NetZero。

广告

Gmail 和 Yahoo! 通过向付费广告商展示电子邮件账户持有者而赚钱。查找各种免费电子邮件服务的评论也很容易。以下是几种免费电子邮件服务的描述:

  • Gmail — Gmail 是 Google 提供的免费电子邮件服务。它提供几乎无限的在线存储空间。它还提供排序方法,允许用户快速有效地组织和筛选收件箱以查找重要消息。作为一项免费服务,Gmail 会向用户展示基于用户电子邮件消息中发现的关键词的上下文广告。它在处理多种不同附件类型以及扫描垃圾邮件、蠕虫和病毒方面功能多样。
  • Yahoo! Mail — 可能是最受欢迎的免费服务之一,Yahoo! 提供无限量的在线存储空间,以及短信和 RSS 新闻订阅源。Yahoo! 使用十几种过滤器归档传入的电子邮件,并自动将垃圾邮件发送到垃圾邮件文件夹,并允许您将电子邮件添加到该文件夹。它具有易于使用的拖放组织工具。
  • MSN Windows Hotmail — 另一个广受欢迎的免费服务是 Hotmail,它由微软技术支持,并提供 5 GB 的在线存储空间。灵活的桌面设计允许用户自定义邮件管理器的颜色和布局。它还为用户提供了选择经典、熟悉格式并可随时切换到更新外观和附加功能的选项。微软的安全功能与熟悉的拖放组织工具相结合,为许多电子邮件用户提供了更舒适的使用体验。

收取费用的电子邮件提供商可能会提供额外的服务,例如增加存储空间。示例提供商包括 Juno、EarthLink 和 Webmail.us。

例如,使用付费服务更容易获得个性化的电子邮件地址——例如,可能包含您的真实姓名。付费电子邮件服务通常允许用户即使更改了 ISP 也能保留相同的电子邮件地址,并保护用户免受广告商的骚扰。在支持问题和特殊功能方面,例如自定义垃圾邮件过滤器、额外电子邮件账户和移动访问,它们通常更容易联系到。

大多数互联网服务提供商也可以免费提供电子邮件服务。其他付费电子邮件服务专门针对小型企业账户,可以协助企业购买和维护域名。

接下来,我们将提供一些撰写和发送电子邮件消息的礼仪技巧。

广告

电子邮件礼仪

大多数人在与同事、客户或上司交谈时都不会想到要粗鲁或令人讨厌。但当我们使用电子邮件时,这些规则可能会被抛诸脑后。

使用电子邮件时,粗鲁的机会很多,而且并不总是容易识别。大多数人在商务沟通中不会使用脏话或贬低性词语。但提高嗓门呢?在使用电子邮件时可能吗?

广告

在这里,我们将讨论一些商务写作规则和实践电子邮件礼仪的技巧。

人们很忙,所以

  • 使用主题行。您可能很想跳过电子邮件的这部分,但请记住:每个人都很匆忙,包括您的电子邮件收件人。他们会感谢主题行提供的关于消息内容的线索。这有助于他们确定优先级和组织。
  • 简洁明了。无论您是多么聪明有趣的作家,您的消息收件人都会欣赏简洁和清晰。把双关语和机智的措辞留到生日贺卡和祝酒之后。快速陈述消息,然后是收件人所需的任何操作的明确请求或指示。
  • 保持私人化。例行公事地抄送邮件给其他人会堵塞邮箱,并可能导致主要收件人想知道您为什么要这样做。除非您有特定的理由抄送给某人,否则请将对话保持在发件人和收件人之间。
  • 快速回复。 不要让电子邮件在您的队列中无人回复。及时回复发件人,即使只是告知您需要更多时间来回复。

人们很敏感,所以

  • 不要过度使用标点符号。 在句子后面添加多个标点符号,例如 ???? 或 !!!!,会让人觉得您在喊叫或对收件人感到沮丧。请使用正常的标点符号规则。
  • 不要使用全大写字母。 使用全大写字母会让人觉得您在喊叫。喊叫是不礼貌的。请使用正常的字母大小写规则。如果您需要强调某事,请写“我想强调的是……”
  • 在发送之前,大声朗读一遍。 尽管您可能认为自己写的就是您想表达的意思,但在点击“发送”按钮之前,最好大声朗读一些电子邮件,设身处地为收件人着想。一旦写下来,就很难收回。另外,永远不要忘记收件人既有打印机也有“转发”按钮。永远不要写您不希望在公司内部甚至外部传播的东西。
  • 生气时不要写邮件。 也许最常见的违反礼仪规则之一就是当您对某人或某个情况生气时,向他们发送一封怒气冲冲的电子邮件。请参阅上面的“大声朗读”。一旦您“抨击”了某人,就无法收回,而且这可能会反过来困扰您。

并非每个人都像您一样时髦,所以

  • 尽量少用符号。 使用“微笑”是一种传达情绪和意义的时尚方式。但您知道讽刺的微笑和调皮的微笑之间的区别吗?即使您确定自己知道,您能确定您的收件人也知道吗?使用这些符号很容易无意中冒犯他人。请避免使用它们。
  • 尽量减少缩写短语。 使用诸如 IMHO(在我拙见看来)、FWIW(恕我直言)和 ROTFL(笑得满地打滚)等缩写可能会让收件人感到沮丧和困惑。

电子邮件就像一封商务信函。忽视基本规则会表现出对收件人的不尊重。不要让非正式性破坏收件人对您的看法。

如需了解更多关于电子邮件和相关主题的信息,请查看以下链接。

广告

广告

加载中...