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

Postfix: что такое псевдонимы доменов?

Мне казалось, что я понял «Псевдонимы доменов» как то, что это просто псевдоним для другого домена! Поэтому, когда я настраиваю почтовый ящик типа «info@main.com» и добавляю «alias.com» в качестве псевдонима домена для «main.com», адрес «info@alias.com» также будет работать ... Но нет !

Итак, я добавил эти домены:

Я создал этот почтовый ящик:

Затем я сопоставил эти псевдонимы доменов:

А затем, когда я отправляю письмо на адрес info@alias.com, я получаю эту ошибку:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

Я не хочу создавать псевдоним для каждого домена, так как у меня их несколько. Я также не хочу использовать подстановочный знак (например, info @ *), потому что есть и другие домены, которые не являются псевдонимами main.com

Итак ... что это именно?

Добавление alias.com к virtual_alias_domains - правильный первый шаг, но он просто говорит Postfix, что вы хотите использовать этот домен для псевдонимов. Он не говорит, какими должны быть псевдонимы. Для этого вам нужно использовать виртуальную карту псевдонимов.

Сначала добавьте что-то подобное в main.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

Добавление virtual_alias_maps получает файл (/etc/postfix/virtual), который используется как виртуальная карта псевдонимов. Но что вы помещаете в этот файл? Согласно виртуальная (5) страница руководства:

Формат ввода для команды postmap (1) следующий:

  pattern address, address, ...

Когда шаблон соответствует почтовому адресу, замените его соответствующим адресом.

и

При поиске из индексированных файлов, таких как DB или DBM, или из сетевых таблиц, таких как NIS, LDAP или SQL, каждый запрос user @ domain создает последовательность шаблонов запросов, как описано ниже. Каждый шаблон запроса отправляется в каждую указанную таблицу поиска перед попыткой следующего шаблона запроса, пока не будет найдено совпадение.

...

@domain address, address, ...

Перенаправлять почту для других пользователей в домене на адрес.

и

Результат поиска подлежит переписыванию адреса: когда результат имеет вид @otherdomain, результатом станет тот же пользователь в otherdomain. Это работает только для первого адреса в результате многоадресного поиска.

Следовательно, вставив это в /etc/postfix/virtual получит желаемый псевдоним полного домена:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

Затем, поскольку этот файл представляет собой хеш-таблицу, вам нужно запустить postmap (объяснение, справочная страница):

postmap /etc/postfix/virtual

Вы можете найти больше информации о виртуальных доменах в Postfix Virtual Domain HOWTO и о псевдонимах в Postfix Address Rewriting HOWTO.

Объяснение в документации: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Вам нужны «псевдонимы почтовых ящиков», также известные как virtual_mailbox_alias и virtual_mailbox_maps, но говорите о «псевдонимах доменов»: http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

@ Джош М.

Я понятия не имею, правильный ли это способ и / или хорошая практика, но я использую что-то вроде этого:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com

Это моя короткая версия ответа @sam-hanes (которая сработала для меня)

В твоем virtual_alias_maps Добавить :

@from.domain <tab> @to.domain

В командной строке выполните:

 postmap /path/to/yourvirtualalismapsfile

В твоем main.cf добавить файл:

virtual_alias_domains : from.domain

virtual_alias_domains сообщает postfix, что все адреса почтовых ящиков в форме mailbox@from.domain являются псевдонимами.