使用 dockerized postfix 发送 cron 邮件

使用 dockerized postfix 发送 cron 邮件

我最近将 postfix 移至 docker 容器中,并在主机上暴露了端口 25 和 587。

执行此操作后,主机上的 cron 现在由于No MTA installed, discarding output.

看起来 cron 尝试使用该sendmail命令,该命令通常由 MTA 包提供。在主机上安装 postfix 来提供 sendmail 似乎有点愚蠢,它会尝试侦听端口 25 并与 dockerized postfix 的映射发生冲突。

我尝试安装msmtp并添加/etc/msmtprc

account default
host localhost
auto_from on
maildomain [domain]

Cron 现在尝试通过 postfix 发送邮件,但即使使用 auto_from 和 maildomain 选项,它似乎也使用了裸露或无效的 from 标头,如From: rootFrom: root (Cron Daemon),这会被拒绝。 opendkim 也无法处理这个问题。

我假设当 postfix 安装在主机上时,postfix 提供了sendmail整理所有地址并mailname根据需要附加的地址,但是极简主义的 msmtp 没有这样做?

这里的解决方案是什么?如何sendmail在主机上获得使用 dockerized 后缀发送邮件的合理命令?

答案1

答案就在于local_header_rewrite_clients选项。默认值为permit_inet_interfaces,仅添加本地消息的域(来源IP 地址与后缀正在侦听的接口匹配)。

将其更改为permit_inet_interfaces,permit_mynetworks允许 postfix 也附加myorigin中的任何内容mynetworks(在我的例子中包括 中的 docker 网络172.17.0.0/16)。

相关内容