我在不同的地方遇到过不同的名称:Light MTA、Remote MTA、Smarthost 等。
一般来说,我不想安装成熟的邮件服务器(例如,,,sendmail
),而只想使用现有的外部 ISP/邮件提供商(例如 dismail.de,mailfence.com 或其他)发送通知/电子邮件,、、我自己的 bash 脚本等来自整个系统。postfix
exim
unattended-upgrades
cron
smartmontools
此外,如果支持排队和重试(在离线或邮件提供商暂时无法访问的情况下尝试重新发送),那就太理想了
到目前为止我发现:
ssmtp
msmtp
s-nail
nullmailer
dma
esmtp
但我没有找到他们之间的任何比较。
- 有谁知道是什么让该程序脱颖而出?(优点、缺点、配置方便、资源消耗低等)
- 可能我错过了一些东西,也许还有另一个,比 Debian 提到的所有那些更好?
- 我是否理解正确,这
s-nail
也是 MUA 或bsd-mailx
不需要mailutils
?也许其他人也是如此?
因此,您的要求可以概括为:
并且很可能:
主要是应传递到本地邮箱文件与外部邮件系统的邮件之间的区别,以及排队和重试传递的要求将消除许多超简单的转发代理。能够处理这些事情的转发代理与完整的 MTA 之间的区别相当小。
我将回应我写这篇文章时出现的评论中的一句话:
一个配置良好的 Postfix 将为您提供这一切。大多数发行版都有 Postfix 的默认配置,它可以满足您所需的 99%,另外 1% 是回答安装时问题或将主机名写入 /etc/postfix 目录中的配置文件。(您要将所有传出消息推送到的智能主机的名称)
这是 Linux 工作站的一个非常常见的需求,也是 Linux 发行版的一个非常常见的用例。因此,他们中的大多数人都在默认安装的 MTA 中预先配置了解决方案。对于很多发行版来说,这就是 Postfix。
经过我的研究:
从上面给出的列表中,消息排队和重试(例如当笔记本电脑暂时离线或邮件服务器暂时关闭时)仅支持:
msmtp
nullmailer
dma
短信发送:
我拒绝了
msmtp
,因为本机不支持排队,需要通过额外的覆盖来解决问题:https://wiki.archlinux.org/title/Msmtp#Using_msmtp_offline
https://gitlab.com/the-foundation/msmtp-cron-sendmail
空邮件程序:
nullmailer
起初看起来不错,但是:allmailfrom
选项,它根本不起作用:user@host
许多电子邮件提供商拒绝包含本地计算机而不是真实电子邮件地址的电子邮件DMA:
对我来说,获胜者是 DMA(蜻蜓邮件代理):
/etc/dma/dma.conf
,/etc/dma/auth.conf
直观且有选项说明from
解决来自的字段问题nullmailer
,只需[email protected]
在dma.conf
文件中,一切就都像魅力一样Unattended-Upgrades
、Cron
、Timeshift
、 脚本等)附加信息:
https://askubuntu.com/questions/759665/how-to-configure-nullmailer-to-work-with-gmx/759682#759682
https://wiki.mageia.org/en/Dma_Dragonfly_Mail_Agent
https://wiki.archlinux.org/title/Dma
在 Debian 11 和 LMDE 5 上测试