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

postfix перехватывает всех пользователей, которых нет в таблице виртуальных псевдонимов

Моя задача - создать конфигурацию постфикса, которая принимает всю почту со всех доменов, получателей и т. Д. И пересылает их в общий почтовый ящик. Это может быть дополнительно отфильтровано в будущем, и действительно, конфигурация должна быть отложена в другой среде, чтобы почта проходила предполагаемому получателю.

Вот сокращенный main.cf:

....
myhostname = mailserver.fqdn
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination =
myorigin = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.5.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 192.168.5.43, 127.0.0.1
inet_protocols = all

virtual_alias_maps = pcre:/etc/postfix/virtual

virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = virtual
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222
....

/ и т.д. / постфикс / виртуальный:

/.*/     catchall
/catchall\@localhost/ catchall

Другие машины настроены на использование этого почтового сервера в качестве узла ретрансляции, и когда почта попадает сюда, это отображается в журнале:

Nov 28 10:08:10 mailserver.fqdn postfix/error[23768]: 5EA9BBD9F5: to=<catchall@localhost>, orig_to=<root@mailsender.fqdn>, relay=none, delay=0, delays=0/0/0/0, dsn=5.1.1, status=bounced (User unknown in virtual alias table)

Я, наверное, упускаю что-то очевидное, это наличие alias_maps = hash:/etc/aliases?

Кроме того, если все пойдет хорошо, могу ли я ожидать, что общий почтовый ящик будет создан автоматически, или нужен другой элемент конфигурации?

Вы можете проверить результат с помощью postmap -q "something@example.com" pcre:/etc/postfix/virtual. Он должен вернуться catchall. Здесь может произойти то, что /.*/ catchall также включает catchall@localhost, заставляя его возвращаться к самому себе и в конечном итоге не разрешаться ни одному реальному пользователю.

Если у вас есть только определенный домен и его поддомены, безопаснее будет использовать:

/@((\w[\w\-]*)\.)+example\.com/ catchall

Затем обработайте localhost с помощью $local_transport транспорт для доставки почты с использованием

mydestination = localhost

Теперь твой catchall@localhost может быть реальным локальным пользователем или псевдонимом, определенным в /etc/aliases.

Просто редактируя /etc/postfix/virtual файла недостаточно, чтобы изменения вступили в силу. Вы должны запустить postmap приказ сделать postfix прочтите файл, вот так:

/usr/sbin/postmap /etc/postfix/virtual

Это создает новый файл с именем /etc/postfix/virtual.db и псевдонимы теперь загружены в postfix.