Я использую постфикс для моей электронной почты. Я знаю, что могу использовать команду/etc/aliases и newaliases для перенаправления определенной электронной почты, например, я могу перенаправить [email protected] на [email protected], поместив root: user
В мой/etc/aliases и затем запустив newaliases
. Однако я бы хотел сделать эквивалент *: user
, Чтобы все письма на example.com отправлялись на [email protected]
Как мне это сделать?
luser_relay = [email protected]
в вашей main.cf
это то, что вы хотите.
Чтобы отключить проверку пользователей и принимать все письма, необходимо добавить local_recipient_maps =
вариант. документация
То, что вы ищете, является виртуальной таблицей псевдонимов и может быть сделано с помощью следующего ...
Сначала вам нужно отредактировать или создать, если он еще не существует, файл / etc/postfix/virtual.
example.com whatever
@example.com [email protected]
После того, как это будет сохранено, вам нужно будет запустить postmap /etc/postfix/virtual
для того, чтобы сгенерировать индексированный / etc/postfix/virtual.db Postfix будет читать.
Затем вам нужно будет отредактировать / etc/postfix/main.cf и убедиться, что у вас есть следующая строка без комментариев:
virtual_alias_maps = hash:/etc/postfix/virtual
Это фактически позволит postfix узнать о виртуальной таблице псевдонимов и использовать ее.
Проблема с использованием luser_relay
, как уже упоминали другие, заключается в том, что локальный агент доставки обрабатывает его как пользователя последних курортов для неизвестных адресов. Если postfix обрабатывает почту только для одного домена, это можно использовать для этого, но он может маскировать другие ошибки конфигурации и, вероятно, приведет к неожиданным результатам, если обрабатывается более одного домена.
Единственное предостережение, которое я должен упомянуть, заключается в том, что, создавая подстановочный псевдоним такого типа, вы открываете свою почтовую систему для приема сообщений на несуществующие адреса и рискуете быстро заполнить почтовый ящик спамом для несуществующего почтовые ящики.
Это на самом деле довольно просто. Все, что вам нужно сделать, это поместить что-то подобное в ваш main.cf
файл:
virtual_alias_maps = regexp:/etc/postfix/virtual_alias
Часть regexp
делает свое дело. Также в /etc/postfix/virtual_alias
вы положили что-то вроде этого:
/^test/ [email protected]
В этом примере вы должны получить всю почту с адресатом, начинающимся с 'test'. Не забудьте опубликовать/etc/postfix/virtual_alias и перезагрузить postfix.
Чтобы объединить ответ/комментарий выше, который работал для меня проще всего (у меня есть один основной домен):
Добавьте следующее к /etc/postfix/main.cf
:
luser_relay = [email protected] (or local system user)
local_recipient_maps =
(local_recipient_maps =
не имеет значения)
Я использую локальную учетную запись linux, а также добавляю того же пользователя в/etc/aliases, чтобы пользователь получал всю почту для root, postmaster и т.д.
Вы также можете объединить этот же адрес в вашем virtual_alias_maps
и укажите любые виртуальные доменные имена на эту же основную учетную запись.
Пожалуйста, обратитесь к luser_relay для получения дополнительной информации.
Если вы хотите использовать универсальный адрес для моего домена, вы можете использовать /etc/aliases
в сочетании с регулярным выражением следующим образом:
В /etc/postfix/main.cf
Добавитьalias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp
В /etc/postfix/catch-all-local.regexp
Добавить!/^owner-/ your-catch-all-user
Это должно сделать свое дело. Это работает для меня, и работает с virtual_alias_maps, установленным параллельно.
В Postfix есть менее известный статический тип таблицы поиска, который может использоваться именно для этой цели:
alias_database = static:[email protected]
alias_maps = static:[email protected]
Если [email protected] не является локальным для этой системы, вы также, вероятно, захотите отбросить все сообщения о сбое, заменив строки, заканчивающиеся на bounce
, на discard
в master.cf
чтобы избежать почтовых петель.