![典型的 Linux/GNU 发行版包含哪些电子邮件特性/功能?](https://linux22.com/image/31737/%E5%85%B8%E5%9E%8B%E7%9A%84%20Linux%2FGNU%20%E5%8F%91%E8%A1%8C%E7%89%88%E5%8C%85%E5%90%AB%E5%93%AA%E4%BA%9B%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E7%89%B9%E6%80%A7%2F%E5%8A%9F%E8%83%BD%EF%BC%9F%20.png)
我很好奇本地 Linux 主机上的系统守护进程如何发送电子邮件。
- 是否已经内置了某种类型的电子邮件框架?
- 我需要 MTA 或 MUA 吗?
- “Sendmail”扮演什么角色?它是一个要求吗?
- 我如何配置服务器才能通过另一台主机发送?
- “mail”命令如何适应这种情况?
- /home/user/maildir 如何融入这张图片?
答案1
你问了一个相当广泛的问题——详细解释所有这些问题需要很多页纸。简单来说:
在 Linux/Unix 机器上发送邮件涉及多个程序。每个角色都有很多可供选择的角色:
- 邮件用户代理 (MUA)。这是您阅读和撰写邮件的方式。它是系统的用户界面。示例:mutt、Thunderbird、Evolution、kmail、...
- 邮件传递代理 (MDA)。这处理将邮件放入本地邮箱。还可以处理过滤器等。示例:procmail、maildrop。
- 邮件传输代理 (MTA)。它处理系统之间的电子邮件发送和接收,通常通过 Internet 使用 SMTP。示例包括 exim、postfix、qmail、sendmail 等。
通常,MTA 和 MDA 是结合在一起的。例如,exim 两者兼而有之(尽管它也可以与单独的 MDA 一起运行)。一些 MUA(例如 Thunderbird)可以处理所有这三种情况(尽管 MTA 功能非常有限)。
现在,有两个接口用于发送邮件:
- 与 localhost:25 建立 SMTP 连接,并使用 SMTP 发送消息。
- 调用
/usr/sbin/sendmail
,并向其传送消息。 (或者通过管道讲 SMTP,并且有一堆参数,如果有兴趣请查看联机帮助页)。
(2)很常见。请注意,这是 sendmail MTA 的本机接口,但几乎所有其他 Unix MTA 都模拟该接口 — 它或多或少是在 Unix 机器上发送邮件的标准方式。
因此,当您运行并输入消息时,会调用将该消息传递给系统 MTA。然后,系统 MTA 使用其本地配置来确定如何处理邮件:mail [email protected]
mail
/usr/sbin/sendmail
- 邮件发送至本地邮件名/主机名,因此进行本地传递(传递至 MDA)
- 对 MX 记录发出 DNS 请求,进行远程 SMTP 传送
- 为此域/电子邮件地址/其他内容配置的自定义操作。 MTA 通常是非常灵活的。
如何/var/spool/mail/user
融入~/Maildir
其中?这正是 MDA 已配置(或默认)的位置,用于放置其发送的邮件。
因此,对于 RAID 监控,您大概想要安装 MTA。如果您要将其通过电子邮件发送到您的 gmail 帐户或其他帐户,则不需要 MDA。
最简单的设置是如果您有一个提供传出 SMTP 中继的 ISP(也称为智能主机;大多数都这样做)。然后您只需设置一个 MTA 将所有邮件发送到那里。乌班图有电子邮件设置文档其中提到 Exim 应该已经安装,但您需要配置它才能从系统中获取邮件(这相当容易)。也可以看看 ”轻量级发送 SMTP 服务器“在 Unix.SE 上。
答案2
是否已经内置了某种类型的电子邮件框架?
是的。大多数发行版都有多种选择。您可以在大多数较大的发行版(例如 Debian、Ubuntu、Fedora、CentOS 等)上使用 MTA,例如 Postfix 和 Sendmail。这实际上取决于您的偏好。
我需要 MTA 或 MUA 吗?
依靠。大多数 Linux 发行版都附带 MTA,通常可以从系统上运行的各种 cron 和守护程序传递系统生成的电子邮件。在这些情况下,MTA 通常配置为仅将电子邮件本地传送到系统上的 root 或管理员类型的帐户。
就 MUA 而言,有多种选择。它们的范围从基于终端的应用程序(例如邮件和 mutt)到 Evolution 和 Thunderbird。
我如何配置服务器才能通过另一台主机发送?我不关心本地用户之间的邮件(到目前为止只有 2 个,我的帐户和 root。),但我很好奇它是如何工作的。
如果您使用的是 Sendmail 等 MTA,您通常可以将盒子配置为智能转发主机,这样它就可以盲目地将任何无法在本地传送到 root 或管理员帐户的邮件转发到某个指定的主机,该主机将负责传递来自主机的邮件。
“mail”命令如何适应这种情况?
这只是一个 MUA。
/home/user/maildir 如何融入这张图片?
通常,只有主机本地且已收到邮件的帐户才会将电子邮件放入此目录中。此处显示的邮件通常由本地配置的 MTA 传送。
这是从Unix继承的东西吗?
不知道如何回答这个问题。
如果您询问的是 PC 和 Unix 之间的明显区别,前者通常不包含 MTA/MUA 类型的应用程序,后者通常包含 MTA/MUA 类型的应用程序。
那么我想说以下几点:
这更多地与 Unix 机器与 PC 上的应用程序类型有关。一般来说,大多数 Unix 机器都用作服务器,服务器需要从运行在其上的各种守护进程和服务传递邮件。这些服务通常没有与之关联的用户帐户,因此需要 MTA 将系统电子邮件开箱即用地发送到世界其他地方。
但在我看来,我发现 PC 不包含这些类型的功能很不寻常,但这只是我的问题 8-)。
答案3
无论如何……所有与邮件相关的包/功能都可以省略。我知道的所有发行版都提供各种 MTA、MUA、邮件存储处理程序(POP、IMAP 服务器)、垃圾邮件过滤器/措施,...