Назад | Перейти на главную страницу

Postfix: пересылать всю почту, доставленную локально, на внешний адрес.

У меня есть сервер, который предназначен для доставки писем с PHP, но не для получения писем. Записи MX моего домена указывают на другую почтовую службу, и у меня Postfix настроен так, чтобы не обрабатывать электронные письма с полным доменным именем. Я хотел бы отправлять любые локальные электронные письма (ошибки постмастера, уведомления о cronjob и т. Д.) На единственный внешний адрес электронной почты me@external.com.

Я нашел здесь пару разных вопросов, которые пытаются решить эту проблему (Вот и Вот в первую очередь), но они, похоже, также перенаправляют все исходящие электронные письма, например, something@gmail.com и something@yahoo.com также доставляются на me@external.com.

Одно из решений, которое действительно работает, - это запись виртуальных псевдонимов для @localhost, @ localhost.localdomain и @ cookweb1 отдельно на me@external.com, но, конечно, есть более элегантное и универсальное решение? Вот соответствующая часть моего /etc/postfix/main.cf (ошибочно пересылает ВСЮ почту на me@external.com):

myhostname = cookweb1
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = cookweb1, localhost.localdomain, localhost
relayhost =
mynetworks = loopback-only
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp

/ и т.д. / постфикс / виртуальный пусто. Вот это / и т. д. / постфикс / виртуальное регулярное выражение (у обоих сгенерированы почтовые карты):

/.+@.+/ me@external.com

Когда ты сказал электронная почта, доставленная локально, Я предполагаю, что вы имеете в виду электронную почту, доставленную в домен @localhost, @ localhost.localdomain и @ cookweb1. Поскольку вы перечислили все эти домены в mydestination параметр, тогда вам нужно установить catchall в alias_maps вместо virtual.

main.cf

alias_maps = regexp:/etc/postfix/local-catch
virtual_maps =

Файл / etc / postfix / local-catch

/.+/ me@external.com

Примечание: virtual_maps устарел и заменен на virtual_alias_domains и virtual_alias_maps.