有没有办法只安装 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:安装(简单)“sendmail Look alike”
据我所知,您可以使用
ssmtp
(或msmtp
)程序/包来获得“sendmail Look alike”,能够将消息传递到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。
[引入它是为了避免设置 root uid 安装 sendmail 的安全风险]