Tim*_*Tim 3 cron smtp email imap mail-transport-agent
我查看了 MTA、MUA、MDA 的定义,例如https://ccm.net/contents/116-how-email-works-mta-mda-mua和https://en.wikipedia.org/ wiki/Email_agent_(基础设施)
在 Lubuntu 中,默认的电子邮件客户端是 Sylpheed,许多也使用 Thunderbird。如果我是对的,Sylpheed 和 Thunderbird 都是 MUA。
在https://unix.stackexchange.com/a/479613/674 中,Stephen 提到 cron 使用 MTA(例如 postfix 或 sendmail)将其作业的输出作为电子邮件发送。
我的问题是:
为什么 cron 使用 MTA 而不是 MUA 来发送电子邮件?如果 cron 可以使用 MUA 发送电子邮件,如何?
为什么我们使用 MUA(Sylpheed 或 Thunderbird)而不是 MTA 来发送电子邮件?如果我们可以使用 MTA 发送电子邮件,如何?
当我们安装 MUA(Sylpheed 或 Thunderbird)时,Sylpheed 或 Thunderbird 是否需要在同一台机器上安装 MTA才能发送电子邮件?
谢谢。
小智 9
从根本上说,Unix 上的邮件是一种本地现象。同一主机上的用户可以在没有任何网络的情况下互相发送邮件。(“地址”只是用户名,没有@。)这当然意味着从 MUA 到 MTA 传递消息的方法必须是本地的。通常,该方法是一个名为sendmail.
通过使 MTA 理解包含该@符号的地址,可以将纯本地邮件扩展到参与 Internet 邮件系统。MUA 仍然不需要知道网络的存在;它只需要将地址视为不透明字符串,并让本地 MTA 确定哪些需要通过网络。
MTA 显然是网络配置的正确位置,因为系统上只有其中一个,但多个 MUA 可以由不同的用户甚至同一用户使用。处理所有网络内容的单个程序意味着不需要多次进行配置。
将其传出消息注入远程服务器的 MUA 旨在允许“类 Unix”系统在没有 MTA 的情况下假装正常工作。这种配置是对传统方案的拒绝。它切断了邮件系统的核心——向任何本地用户发送消息的能力——并且没有提供足够的替代品。
Cron 充当 MUA,这就是为什么它不“使用 MUA”,并且它正在做 Unix MUA 一直在做的事情,在不知道网络存在的情况下发送邮件,依靠本地 MTA 来解决问题. 通过本地用户名寻址收件人是唯一合理的默认设置,因为 cron 作业代表本地用户运行,并且无法知道该用户在某个远程主机上可能拥有的地址。