出于好奇,有几十/几百个教程可以帮助您设置 dovecot - postfix 邮件服务器。从表面上看,它们都是电子邮件服务器,为什么要同时使用它们?邮件服务器已经够复杂了,为什么还要管理和排除两件事情的故障?
从表面上看,这就像在 Ubuntu 中运行 CentOS 并且总是想知道为什么 ./configure 会出现混乱一样:)
Dovecot 是一款适用于 Linux/类 UNIX 系统的开源 IMAP 和 POP3 电子邮件服务器,其编写主要考虑了安全性。Dovecot 是小型和大型安装的绝佳选择。它速度快、设置简单、不需要特殊管理,而且占用的内存很少。
Postfix 是什么?它是 Wietse Venema 的邮件服务器,最初在 IBM 研究部门推出,作为广泛使用的 Sendmail 程序的替代品。现在在 Google,Wietse 继续支持 Postfix。
我遵循了众多指南中的其中一个,并使其与 Postfix 和 ISPConfig 的 TLS 身份验证一起工作,然后最后意识到我真的不需要接触 Dovecot,但不确定它是否必须用于垃圾邮件过滤器、防病毒软件或其他我没有想到的东西。
答案1
Postfix 和 Dovecot 做不同的事情。
Postfix 是一个 MTA,即邮件传输代理。
它接收来自外部世界和本地来源的邮件,并将其路由到目的地。这可能涉及与另一台机器的 smtp 连接,也可能涉及将其传送到本地传送代理或直接写入 mbox。当 MTA 出现问题时,事情会变得很糟糕;例如,您的机器可能会被用来退回大量垃圾邮件。
然而,由于我们的电子邮件系统的工作方式,MTA 必须不断与合法和不需要的邮件源进行交互。
Dovecot是邮箱界面软件。
具体来说,它允许用户使用 IMAP 接口访问他们的邮箱。如果配置正确,它只与经过身份验证的用户交互。这意味着,一般来说,dovecot 不必“与坏人交谈”。
从 50,000 英尺的高度看:Postfix“了解” SMTP。Dovecot“了解” IMAP。
(是的,Postfix 可以使用 Dovecot 执行身份验证,并使用 Dovecot 的 LDA 将邮件放入 mboxes,所以故事肯定还有更多内容。)
答案2
Postfix 只负责发送客户邮件和临时存储收到的邮件不按照收件人电子邮件地址进行排序。
Dovecote 的主要任务正在对邮件传输代理 (MTA)(例如 Postfix)收到的电子邮件进行分类,并根据每个收件人的需求进行投递。它将到达 Postfix 单个邮箱的大量电子邮件分成每个收件人地址的单独邮箱,并同时监听来自收件人的电子邮件客户端程序包(例如 Outlook 或 Thunderbird)的新电子邮件请求。
Linux 系统之所以有这种职责分离,可能与 Unix 和电子邮件的历史发展有关。电子邮件的早期采用者(当时还未出现互联网)是拥有现有(且劳动密集型)内部邮政系统的大型组织。是的,至少在 20 世纪 80 年代之前,大学和政府部门曾经拥有自己的邮局、邮递员和投递周期。
20 世纪 80 年代的 MTA 可以实现即时电子邮件递送当在每个客户端始终连接的本地网络上操作时:无需存储未送达的电子邮件以供日后送达 - 它们会被转移到收件人用户文件空间的电子邮件收件箱中。当时 Unix 还是大型机服务器到个人用户终端的操作系统。用户登录到组织大型机的终端后,便会在显示器上看到新邮件消息。
随着 PC 功能越来越强大,远程网络连接信息系统成为可能,电子邮件开始演变为远距离人与人之间沟通的一种方式。当时的网络连接是通过电话线进行的,因此无法一直保持开启状态。因此,需要存储由于收件人可能不在工作站而无法在任意时间送达的电子邮件。因此,专用网络/电子邮件/数据/应用程序诞生了服务器始终连接到外部网络的计算机,以及客户仅在需要服务器数据时才进行外部连接的机器(即台式机和笔记本电脑)。
与此同时,Unix 已从一台主机操作系统演变为一台集成的独立操作系统,用于 PC 上,为终端提供服务器 - 尽管 Unix 通常是 MS-DOS/Windows、Mac OS、OS1、OS2 的替代操作系统。然而,Unix 固有的服务能力使其成为 Web 服务器机器的不错选择。20 世纪 90 年代初,出现了一个以 Unix 为模型的免费开源操作系统 Linux。Linux 很快成为 Web 服务器机器的首选操作系统,因为许多人为其贡献了内核和应用程序代码,而且它不花钱;最终人们认为它甚至比 Unix 更好。
Sendmail MTA 于 1983 年问世,当时它取代了 ARPANET 用来在美国国防部各部门之间进行通信的 Delivermail 软件包。随着互联网的普及,消费者对电子邮件的使用范围越来越广,人们开始在工作、家庭和休闲场所使用不同的电子邮件地址。所有这些都导致 PC 用户需要从服务器分别将所有电子邮件发送到他们的所有地址 - 邮件投递代理 (MDA) 软件包。Sendmail 仍然专注于改进 Unix 和 Unix 的免费替代操作系统 Linux 服务器上的电子邮件传输。要创建一个集成的传输/投递邮件代理,需要开源社区投入大量时间,而开源社区已经提供了 Sendmail 以及它的替代者 Postfix。编写一个基本的邮件投递代理并将其连接到像 Sendmail 或 Postfix 这样的成熟 MTA 上更有意义。这就是发生的事情。Dovecot 和其他 MDA 被开发用于与现有 MTA 配合使用,它们的输出目录的内容成为 MDA 的输入。
虽然我们许多人在尝试在 VPS 上配置邮件时可能会发现处理 MTA 和 MDA 以及各种其他东西以启用垃圾邮件过滤、网络邮件访问等很麻烦,但我们必须记住,我们在这一切中免费获得了这么多东西。为了更轻松的开发或更可靠的邮件服务而需要做出一些妥协,有时我们应该勇敢地接受这一点。
除非你想让我们都回到 Microsoft Exchange Server 和 Outlook ……无论如何,只要看看 MS Exchange Server 内部,你无疑会看到用于邮件传输、邮件代理、垃圾邮件消除、投递等的单独模块。当你选择新的供应商时,构建良好软件系统的原则不会改变:只要接口保持不变,关注点分离就可以在系统内同时开发各种软件包;它还可以更轻松地跟踪错误。
至少在 Linux 中,您可以根据自己的需求和偏好选择不同的邮件服务器软件包或组合。然后,您可以立即“配置”每个组件软件包。