我试图了解邮件服务器的所有组件是如何组合在一起的。
- 我知道发送电子邮件需要 SMTP 服务器。
- 在访问电子邮件方面,我将设置一个网络邮件客户端,但不需要通过桌面客户端访问。
所以我的问题是:在这种情况下我需要 IMAP 服务器吗?或者 Webmail 客户端是否可以以某种方式直接链接到 SMTP 来发送和阅读电子邮件?
答案1
要设置你的电子邮件服务器和网络邮件,你需要两样东西:
- 一个 SMTP 服务器,用于发送消息,正如你所说,
- 一种读取收到的消息的方法,这就是您实际要求的部分。
Webmail 实际上不会接收邮件,它只会从某个地方读取或获取邮件。SMTP 服务器(通常与用于发送的服务器相同)将接收邮件,并通过使用 MDA 将它们存储在某个地方(在磁盘上,但也可能在某个数据库中)(消息传递代理)。然后您需要一种方法让您的网络邮件可以在某个地方访问它。
根据您的设置和要使用的网络邮件客户端,有多种选项:
- IMAP 是其中之一,可能是最常见和用途最广泛的,
- POP3 是另一个,
- 但您也可以直接访问存储:
- 直接从磁盘(假设您的 smtp 服务器接收邮件与您的 webmail 位于同一主机上),
- 来自存储消息的数据库(如果您的 SMTP 服务器将消息存储在数据库中,这并不常见)。
如果您既不需要 IMAP 也不需要 POP3,则可以使用磁盘直接访问解决方案,但您需要一个可以读取或mbox
电子邮件maildir
存储的网络邮件软件。这是在 UNIX 主机上存储消息的两种最流行的方式。 mbox
是一个包含所有消息的单个文件,maildir
是一个带有子目录的目录,每个消息都是一个单独的文件。 maildir
格式是最常见和最强大的。
这样的网络邮件客户端并不常见,你可能需要自己开发它(或者为其他现有的网络邮件软件开发插件)。不过,我知道有一个可以做到这一点邮件系统,包含在快递电子邮件服务器套件中。
DB 消息存储是可能的,但可能仅用于非常大的设置。
您可能还感兴趣StackOverflow 上的这篇文章。
答案2
这与我今天早些时候回答的一个问题相关:
除非您使用的是 Roundcube 而不是 Squirrelmail。
另外,请看一下:
http://wiki.mutt.org/?MailConcept
作为邮件系统各个组件(即MTA,MUA,MDA)的概述。
我记得 Roundcube 纯粹是一个 IMAP 客户端,也许是某个 POP3,我不记得了。无论哪种情况,您都需要一个充当 MDA 的 IMAP 服务器。
话虽如此,我想不出任何基于 Web 的邮件客户端可以立即访问旧邮件假脱机。可以编写一个,但感觉有点不灵活,因为我们已经发明了 IMAP,它可以处理诸如同时访问假脱机文件等问题。如果您在当今时代运行真正的邮件系统,您将需要使用支持 IMAP 之类的 MDA。
还有大型的“群件”系统,如 Horde 或 Zimbra。这些系统会将整个邮件系统(以及其他群件应用程序)放在一个大包中,因此,从某种意义上说,您只需要安装一个软件。但在底层,内部将具有我上面提到的邮件架构概念,即 MTA -> MDA -> MUA。
答案3
不。客户端收到通过 SMTP 发送消息不再是客户端,而是服务器。虽然没有技术原因导致您无法拥有带有 Web 界面的 SMTP 服务器来访问消息,但客户端的工作方式并非如此。另外请记住,SMTP 是一种推送协议,因此虽然另一台服务器当然可以将消息发送到您的“客户端”,但该“客户端”可以通过网络获取消息。