Локальный MTA на Docker-хосте

Самый простой вариант — отключить прослушивание на порту 25/tcp.

Пользователи Postfix отключают прослушивание, закомментировав следующую строку (начинающуюся с smtp или 25) в /etc/postfix/master.cf:

#smtp      inet  n       -       -       -       -       smtpd

Кроме того, для ретрансляции через контейнеризированный animails может потребоваться добавить 172.22.1.1 в качестве relayhost и удалить интерфейс Docker из «inet_interfaces»:

postconf -e 'relayhost = 172.22.1.1'
postconf -e "mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128"
postconf -e "inet_interfaces = loopback-only"
postconf -e "relay_transport = relay"
postconf -e "default_transport = smtp"

Важно, чтобы значение myhostname не совпадало с FQDN, который используется для вашего animails в Docker. Проверьте параметр myhostname в main.cf вашего локального (не Docker) Postfix и установите другое значение, например local.my.fqdn.tld.

«172.22.1.1» — это сетевой шлюз, созданный animails в Docker. Ретрансляция через этот интерфейс необходима (вместо, например, прямой ретрансляции через ${MAILCOW_HOSTNAME}) для пересылки через известную внутреннюю сеть.

Перезапустите Postfix после внесения изменений.