Postfix 尝试绑定到端口 25,仅用于外发邮件(可能没有必要?)

Postfix attempting to bind to port 25, used for outgoing mail only (maybe not necessary?)

不确定这是否属于 Stack Overflow 或其他地方,但我会先在这里尝试。

我有多个服务器,每个服务器都具有相同的设置,服务器上几乎所有 运行 都在一个 docker 容器中。我有两个想要实现的目标。首先,主机设置为将 uid < 1000 的用户的电子邮件发送到我的外部电子邮件地址。其次,在一台服务器上,我有一个 docker-mailserver 容器 运行 处理随机的、很少使用的电子邮件(用于日志文件等)。

看来我可以拥有主机 运行 后缀或 docker-mailserver 运行(并绑定到端口 25)。目前,我有 docker 容器,运行 邮件服务器,完全正常运行,一切都可以正常发送和接收。

但是,现在我无法在主机上启动 postfix,因此我无法接收发送给 root 用户的电子邮件(例如 cron 输出),因为端口 25 正被实际邮件使用——正确地——服务器接收邮件。

问题: 1) 如何告诉主机上的 postfix 不绑定到端口 25?如果端口 25 仅用于接收邮件,为什么我的仅外发后缀配置需要使用端口 25? 2) 如果通常发送给 root 用户的任何内容都记录在其他地方(也许是系统日志?),我很乐意不接收 root 用户的电子邮件。发给 root 的电子邮件是仅作为电子邮件维护还是在其他地方,从而无需在主机上使用 postfix 来转发到真实帐户?

提前致谢。

先具体回答你的问题:

  1. 您应该能够让 postfix 监听您指定的任何端口,方法是编辑 main.cf 配置文件并将 smtp 监听器更改为您选择的编号端口。当然,如果它不是 "known" 端口,我不确定 what/who 是否会连接到它,但在这种情况下你可能不在乎,因为你只是将 postfix 用作中继?

  2. 这可能取决于 Linux 分发或主机设置,但如果没有 [=33],大多数系统会将电子邮件留在本地递送 "mail spool" =] 设置将其移动到其他任何地方。当这是在 UNIX 系统上处理多用户邮件的正常方式时,登录用户使用邮件 reader 客户端阅读本地 "spool" 中的电子邮件,当然如果你不这样做有了它,您可以简单地 vi 您的邮件文件并在必要时阅读原始内容。在大多数系统上,这些邮件文件通常位于 /var/spool/mail

抛开你的问题,我猜你的主机上不一定需要 postfix 运行,尤其是当你的容器化邮件服务器正在处理主机的端口 25 SMTP 流量时。我认为本地电子邮件将保留在本地,没有后缀,并且可以通过本地方式使用;如果需要,您甚至可以找到更简单的外部转发解决方案(例如,可以解析邮件假脱机并仅连接到 SMTP 中继并将其发送到外部地址的脚本)。