![如何仅安装 sendmail 客户端,而不安装 MTA?](https://linux22.com/image/792972/%E5%A6%82%E4%BD%95%E4%BB%85%E5%AE%89%E8%A3%85%20sendmail%20%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%8C%E8%80%8C%E4%B8%8D%E5%AE%89%E8%A3%85%20MTA%EF%BC%9F.png)
有没有办法只安装 sendmail 客户端,而不安装 sendmail MTA?
我指的是提交外发电子邮件sendmail -t
等进程经常使用的命令cron
。大多数此类程序都希望调用某种兼容 sendmail API 的程序来sendmail
发送外发邮件。
目前在我的邮件服务器上,我没有任何sendmail
二进制文件,因此我在 cron 中看到如下内容:
(CRON) info (No MTA installed, discarding output)
实际上,我确实安装了一个 MTA - 我自己编写的(所以不是 Postfix、exim 等) - 但我没有任何sendmail
程序可以与之交互。我想知道是否可以sendmail
单独安装和使用该程序,只接收发送给它的任何内容,然后打开 SMTP 连接 localhost:25 并使用 SMTP 事务将其输入到 MTA 中。这样,我就不需要编写sendmail
具有相同接口的程序来执行此操作。
这可能吗?我认为类似的东西已经存在,所以我不想重新发明轮子。默认安装sendmail
还会安装 sendmail MTA,而我并不需要它;我不想安装任何会破坏或干扰系统上已有的真实 MTA 的 MTA 包。
在我所做的研究中,这两者之间似乎没有什么区别。所有教程似乎都假设您使用的是“标准”MTA 之一。如果答案是“否”,那么是否有关于sendmail
需要实现程序兼容性的完整二进制 API 的文档?
答案1
选项 1:安装(简单)“sendmail look alike”
据我了解,您可以使用ssmtp
(或msmtp
)程序/包来获得“sendmail 相似物”能够将消息传递到 SMTP 服务器(例如 localhost:25)。
https://wiki.archlinux.org/title/SSMTP
https://packages.debian.org/source/stable/ssmtp
选项 2:使用 sendmail 而不启动 sendmail 守护程序
安装 sendmail 包但阻止启动 sendmail 守护程序。现代 sendmail 安装默认将 sendmail 命令通过 SMTP 提交的消息传递到 localhost:25。
[为了避免将 sendmail 安装为 set root uid 的安全风险,引入了此项]