如何仅安装 sendmail 客户端,而不安装 MTA?

如何仅安装 sendmail 客户端,而不安装 MTA?

有没有办法只安装 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 的安全风险,引入了此项]

相关内容