典型的 Linux/GNU 发行版中包含哪些电子邮件特性/功能?

Cor*_*rey 3 email sendmail

我很好奇本地 Linux 主机上的系统守护进程如何发送电子邮件。

  • 是否已经内置了某种类型的电子邮件框架?
  • 我需要 MTA 还是 MUA?
  • “Sendmail”扮演什么角色,它是必需的吗?
  • 我将如何配置服务器以便能够通过另一台主机发送?
  • “邮件”命令如何适应这个?
  • /home/user/maildir 如何融入图片?

der*_*ert 7

你问了一个相当广泛的问题——详细解释所有这些需要很多页。简单来说:

在 Linux/Unix 机器上发送邮件涉及多个程序。每个角色都有很多可供选择:

  • 邮件用户代理 (MUA)。这是您阅读和撰写邮件的内容。它是系统的用户界面。示例:mutt、Thunderbird、Evolution、kmail、...
  • 邮件传递代理 (MDA)。这处理将邮件放入本地邮箱。也可以处理过滤器等。例如:procmail、maildrop。
  • 邮件传输代理 (MTA)。这处理在系统之间发送和接收电子邮件,通常使用 SMTP 通过 Internet。示例包括 exim、postfix、qmail、sendmail 等。

通常,MTA 和 MDA 结合在一起。例如,exim 两者都做(尽管它也可以使用单独的 MDA 运行)。并且一些 MUA(例如,Thunderbird)处理所有这三个(尽管 MTA 功能非常有限)。

现在,有两个接口用于发送邮件:

  1. 与 localhost:25 建立 SMTP 连接,然后说 SMTP 以发送消息。
  2. Invoke /usr/sbin/sendmail,并将消息通过管道传递给它。(或者通过管道说 SMTP,并且有一堆参数,如果有兴趣,请查看联机帮助页)。

(2) 很常见。请注意,这是 sendmail MTA 的本机接口,但几乎所有其他 Unix MTA 都模拟该接口——它或多或少是在 Unix 机器上发送邮件的标准方式。

因此,当您运行mail bob@example.com并键入消息时,mail调用/usr/sbin/sendmail以将该消息传递给系统 MTA。然后系统 MTA 使用其本地配置来确定如何处理消息:

  • 邮件是到本地邮件名/主机名,所以做本地投递(传递给 MDA)
  • 为 MX 记录发出 DNS 请求,进行远程 SMTP 传送
  • 为此域/电子邮件地址/任何配置的自定义操作。MTA 通常非常灵活。

如何/var/spool/mail/user或如何~/Maildir适应这个?这就是 MDA 被配置(或默认设置)以放置它传递的邮件的地方。

因此,对于您的 RAID 监控,您可能需要安装 MTA。如果您通过电子邮件将其发送到您的 gmail 帐户或其他任何地方,则不需要 MDA。

最简单的设置是,如果您有一个提供外发 SMTP 中继的 ISP(又名智能主机;大多数都可以)。然后您只需要设置一个 MTA 将所有邮件发送到那里。Ubuntu 有电子邮件设置文档,其中提到应该已经安装了 Exim,但是您需要对其进行配置以从系统中获取邮件(这很容易)。另请参阅Unix.SE 上的“轻量级外发 SMTP 服务器”。