邮件系统详解

2022/2/13 23:45:26

本文主要是介绍邮件系统详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Email Working

Diagram showing how email appears 	    to be a direct transfer from originating sender to 	    recipient, but actually involves multiple hops from 	    server to server within the network cloud.

电子邮件系统的简要概括

  1. 电子邮件是使用电子邮件程序(电子邮件客户端)撰写的。
  2. 电子邮件程序通过将邮件内容(正文)与收件人、主题、日期和时间(标头)组合在一起来组合电子邮件。
  3. 电子邮件依赖于一组协议来到达正确的目的地。
  4. 电子邮件程序(电子邮件客户端)有两种形式,一种是基于Web的版本,如Gmail,用户必须通过浏览器登录才能访问他们的电子邮件,另一种是基于客户端的版本,如Outlook,用户安装软件以从本地计算机访问电子邮件。

什么是电子邮件

电子邮件实际上是在我们所知互联网之前发明的。电子邮件被认为是计算机相互通信的一种手段。从20世纪60年代初开始,由美国国防部创建的计算机通信网络ARPANET开发了一种电子邮件传输系统,该系统依赖于现在熟悉的"@"符号。雷·汤姆林森(Ray Tomlinson)被广泛认为是策划电子邮件的人,因为我们知道他是故意选择@符号的。

@ 符号允许消息以特定计算机上的单个用户为目标,而不是本地主机。电子邮件地址的格式现在username@host。用户名与计算机名称的这种分离方式类似于为网站 IP 地址分配域名的方式。一旦开发了域名系统(DNS),电子邮件地址就采用了loginname@host.domain的格式。

电子邮件通过多个计算机服务器路由到用户帐户。邮箱是存储电子邮箱的地方,当用户收到电子邮件时,邮件系统会自动将其放入其邮箱中。邮箱对用户十分友好,它们将电子邮件分为文件夹,收件箱,发件箱,垃圾邮件等,并允许用户扫描邮件,复制,删除或转发给其他用户。但是,在邮件到达邮箱之前会发生什么?


电子邮件协议

1、SMTP(简单邮件传输协议),监听在tcp25号端口,用于发送邮件

2、POP3(邮局协议),监听在tcp110端口,用于接收邮件

3、IMAP(互联网邮件访问协议),监听在tcp143端口,同样用于接收邮件,但还提供摘要浏览功能

邮件传输代理 (MTA) 使用 SMTP 协议(SMTP 服务器)通过互联网相互通信。然后,收件人的 MTA 将电子邮件转发到传入邮件服务器(MDA、邮件传递代理),其任务是存储邮件,直到用户接受邮件。要在 MDA 上检索电子邮件,必须使用支持协议。有两种主要协议,POP3和IMAP。您可能会识别这两个首字母缩略词,因为传入邮件服务器称为 POP 服务器或 IMAP 服务器,具体取决于它们使用的协议。

SMTP 和 MTA

SMTP和MTA搭配用于传出邮件

与物理邮箱不同,在物理邮箱中,一个服务(邮局)处理您的所有邮件,而电子邮件的传入和传出处理方式不同。有两种类型的服务器。简单邮件传输协议 (SMTP) 是一种用于通过 Internet 发送邮件的电子邮件传递协议。SMTP 包含有关电子邮件传输详细信息,专门用于传出邮件。邮件传输代理 (MTA) 是使用 SMTP 传递电子邮件的服务器程序。

有两种类型的MTA,一种是基于客户端的MTA,它涉及安装软件来访问电子邮件(如Outlook),另一种是基于Web的MTA,通过Web浏览器(例如Gmail)访问。

SMTP 依赖于 TCP 端口 25。发送电子邮件时,端口 25 通常用于将邮件路由到本地计算机,该计算机由网络运营商指定用于处理电子邮件。此电子邮件服务器由电子邮件主机预先批准,处理传入的电子邮件并发送邮件。端口 25 的问题在于,如果同一网络上的计算机感染了恶意软件或病毒,它就会被垃圾邮件堵塞。因此,大多数反垃圾邮件指南建议阻止端口 25。

POP与IMAP

POP 代表 邮局协议。该软件用于检索电子邮件。POP3 允许电子邮件用户访问存储在该服务器上的用户帐户中的电子邮件。您无需保持在线即可收到电子邮件。您只需要在服务器上留下电子邮件的副本即可访问它。

POP有一些缺点。通过POP传输的信息是单向传输的。这意味着,一旦电子邮件下载到客户端,客户端将负责对不同的状态标志(例如,已发送、已删除或已应答)进行排序。在智能手机,平板电脑等出现之前,这很好。用户从单个位置访问其邮件。如今,我们更有可能从许多地方访问电子邮件。例如,家里的电脑,手机上的邮件应用程序,或者工作时的Web界面。使用POP,您必须对每个不同设备上的信息进行排序 (有点像CPU和cache)

IMAP(互联网消息访问协议)与其服务器进行双向通信。IMAP 协议保存服务器上每封邮件的副本,多个客户端可以访问它们。它是完全同步的。使用 IMAP,当您在平板电脑上查看电子邮件时,当您在手机上检查收件箱时,该电子邮件将被标记为已读。发生这种情况是因为在服务器交互期间,电子邮件的状态将与所有其他客户端一起更新。


电子邮件的工作原理

发送电子邮件的那一刻,邮件将通过简单邮件传输协议从一个服务器路由到另一个服务器,直到它从客户端传递到电子邮件收件人的电子邮件服务器。

  1. 发送电子邮件就像给朋友写信一样。假设 isobel@example.com simon@example.com 向他们的朋友发送电子邮件。电子邮件首先被发送到发送邮件服务器(SMTP),其工作与邮局一样,是传输电子邮件。SMTP 会检查邮资地址,以确定将邮件发送到何处。不幸的是,SMTP不了解如何读取域名(就像邮递员查阅地图一样,因为他不知道每个街道名称的记忆)。SMTP 需要一个计算机友好的 IP 地址来查找邮件并将其传递给收件人。为了找到IP,SMTP联系DNS服务器(互联网的电话簿)将收件人的电子邮件地址*(simon@example.com)*转换为IP地址,如"45.789.56.89"。找到关联的 IP 后,它会检查该域是否有任何邮件交换服务器 (MX),这些服务器详细说明了有关邮件应发送到何处的任何信息。这就像在现实生活中检查收件人是否使用邮箱或邮政信箱接收邮件一样。
  2. SMTP 含有和收件人有关的所有必要信息,以便将邮件从其服务器发送到电子邮件收件人的 MTA 服务器上。
  3. MTA 决定将邮件放在何处,以及收件人使用的客户端是通过 POP 还是通过 IMAP 协议工作。然后,收件人将收到新的电子邮件通知,邮件将在邮箱中等待,直到被提取。

所以电子邮件传输的工作方式几乎与发送真实邮件的方式相同。发送电子邮件后,邮件服务器会将其放入信封(SMTP 协议连接)中。让我们来看看它是如何工作的。

  • 撰写电子邮件并单击发送按钮后,邮件将发送到邮件传输代理 (MTA)。此通信通过简单邮件传输协议 (SMTP) 完成。

  • SMTP 查询域名系统 (DNS) 以查找收件人的地址。这是在邮件交换器 (MX) 记录的帮助下完成的。MX 记录是指定域名的邮件服务器的资源记录。找到后,SMTP 服务器会将邮件发送到该服务器。

  • 下一步涉及在邮件服务器之间传输邮件。邮件现在位于收件人的邮件服务器 (MTA) 中。接收服务器将存储邮件,并将其提供给收件人,收件人可以通过 Web、POP 或 IMAP 协议访问该邮件。

    一、 什么是MX记录?
      MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器。在用户发送邮件时,“smtp发送服务器”根据收信人的域名(邮箱地址后缀)来定位收件人的邮件服务器。例如,当Internet上的某用户要发一封信给 user@yourdomain.com时,该用户的邮件系统通过DNS查找yourdomain.com这个域名的MX记录,如果MX记录存在, 发件方邮件服务器最终就将邮件发送到MX记录所指定的邮件服务器上。反之会因找不到收件方服务器而退信。

    二、检查MX记录是否存在的方法
      进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。可以在Windows的命令行下直接运行nslookup进入一个交互模式,在这里能查询各种类型的DNS数据。


让我们分解一下电子邮件的传输方式。与大多数互联网数据一样,电子邮件使用互联网的TCP / IP协议作为数据包流在互联网上传播。此过程可分为三个步骤:

  1. 一旦发送电子邮件,TCP协议就会将其分解为数据包( );每个数据包都带有发件人和电子邮件收件人的地址。
  2. IP 协议将数据包路由到预期的目标。万维网上的路由器会检查每个数据包中的地址,以计算到电子邮件目标服务器的最有效路由。规划路径后,数据包将转发到下一个路由器。如何路由电子邮件数据包有几个因素,例如任何给定网络上的流量。
  3. 数据包到达收件人的电子邮件服务器后,TCP会将它们重新组合为发送时的电子邮件格式(收件人可以读取)。

如何接收电子邮件

  • 邮件服务器会找到收件人的服务器,但由于收件人的服务器不会接受收到的每封邮件,因此它会询问谁发送了电子邮件。
  • 发送服务器通过查询信封向收件人服务器提供有关发件人的信息。确认电子邮件来自合法来源(不是垃圾邮件等)
  • 如果满足发件人地址正确,收件人服务器将询问收件人。这就是处理信封数据的方式。发送服务器现在将转发信封中包含的电子邮件的内容。收到电子邮件后,收件人服务器会向邮件服务器提供回执。

未完待续



这篇关于邮件系统详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程