我在不同的地方遇到过不同的名称:Light MTA、Remote MTA、Smarthost 等。
一般来说,我不想安装成熟的邮件服务器(例如sendmail
,,,postfix
)exim
,而只想使用现有的外部 ISP/邮件提供商(例如 dismail.de,mailfence.com 或其他)发送通知/电子邮件unattended-upgrades
,cron
、、smartmontools
我自己的 bash 脚本等来自整个系统。
此外,如果支持排队和重试(在离线或邮件提供商暂时无法访问的情况下尝试重新发送),那就太理想了
到目前为止我发现:
ssmtp
msmtp
s-nail
nullmailer
dma
esmtp
但我没有找到他们之间的任何比较。
- 有谁知道是什么让该程序脱颖而出? (优点、缺点、配置方便、资源消耗低等)
- 可能我错过了一些东西,也许还有另一个,比 Debian 提到的所有那些更好?
- 我是否理解正确,这
s-nail
也是 MUA 或bsd-mailx
不需要mailutils
?也许其他人也是如此?
答案1
因此,您的要求可以概括为:
- 通过命令行选项或通过管道接受消息到标准输入,因此脚本和可执行程序可以发送出站邮件
- 可以区分应该进入本地邮箱文件的消息(例如,来自根 crontab 的标准输出)和应该进入外部邮件系统以传递到其他邮箱的消息(例如,通知)[电子邮件受保护])
- 支持 SMTP(现在可能还支持 TLS/SSL 加密)以允许发送到这些外部邮件系统
- 支持在本地对消息进行排队并重新尝试传递,以防“智能主机”一段时间内无法访问(造成这种情况的原因可能有多种)
并且很可能:
- 对于那些只知道如何与 localhost:25 建立 TCP 连接来发送电子邮件(并且不知道如何调用外部命令)的 GUI 程序,支持作为本地 SMTP 守护程序运行
主要是应传递到本地邮箱文件与外部邮件系统的邮件之间的区别,以及排队和重试传递的要求将消除许多超简单的转发代理。能够处理这些事情的转发代理与完整的 MTA 之间的区别相当小。
我将回应我写这篇文章时出现的评论中的一句话:
一个配置良好的 Postfix 将为您提供这一切。大多数发行版都有 Postfix 的默认配置,它可以满足您所需的 99%,另外 1% 是回答安装时问题或将主机名写入 /etc/postfix 目录中的配置文件。 (您要将所有传出消息推送到的智能主机的名称)
这是 Linux 工作站的一个非常常见的需求,也是 Linux 发行版的一个非常常见的用例。因此,他们中的大多数人都在默认安装的 MTA 中预先配置了解决方案。对于很多发行版来说,这就是 Postfix。
答案2
经过我的研究:
从上面给出的列表中,消息排队和重试(例如当笔记本电脑暂时离线或邮件服务器暂时关闭时)仅支持:
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
包含本地计算机而不是真实电子邮件地址的电子邮件 - 在其他情况下,此类电子邮件通常会成为垃圾邮件
- 该问题已被报告,但自 2020 年 4 月以来尚未得到解决 https://github.com/bruceg/nullmailer/issues/72
- 有一个解决方法,但就我个人而言,我对技巧和解决方法不感兴趣,因为我正在寻找一种优雅且开箱即用的解决方案 https://www.atwillys.de/content/linux/force-nullmailer-to-use-a-fixed-from-address/
- 许多电子邮件提供商拒绝
DMA:
对我来说,获胜者是 DMA(蜻蜓邮件代理):
- 配置工作完美,花了 3 分钟
- 配置仅包含两个文件
/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 上测试