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

Исключение для псевдонима захвата постфикса с подстановочными знаками, позволяющего голубятню хранить электронную почту

Я настроил postfix для чтения карт псевдонимов из PostgreSQL (virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf ), каждый домен, который я настроил, имеет групповое правило / универсальное правило.

Возможно создание более конкретного псевдонима для перенаправления электронной почты на новый адрес электронной почты (например, внешнего поставщика), но я не знаю, как сообщить postfix (чтобы сообщить dovecot) хранить электронную почту для определенных адресов электронной почты.

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

Просто для дальнейшего пояснения, эти перенаправления - это то, чего я хочу достичь. (Я уже пробовал использовать имя пользователя вместо полного адреса электронной почты в псевдонимах, но это не сработало, электронные письма не были сохранены, поэтому должно быть что-то еще):

user@domain.com -> user@domain.org
user2@domain.email -> user2 (SMTP user's mailbox)
@domain.com -> catchall (SMTP user's mailbox)
@domain.email -> catchall (SMTP user's mailbox)
@domain.net -> user@external.com
user2@domain.com -> user2@domain.email
[... and a few hundred more ...] 

Решение также должно работать с адресами электронной почты Unicode, меня уже очень раздражает глупый драйвер LATIN1 PGSQL Postfix, который нигде не упоминается, он даже не конвертируется в punycode, когда набор символов не LATIN1.

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

Действительно ли нужен бэкэнд PostgreSQL для псевдонимов? Это довольно просто с Berkeley DB.

virtual_alias_maps = hash:/etc/postfix/virtual

В этом примере .com и .net внутренние и .org внешний:

user@example.com   user@example.org
user2@example.com  user2
user2@example.net  user2
@example.com       catchall
@example.net       catchall

Считайте адреса и пункты назначения простыми парами, избавляясь от сложных цепочек вроде:

user2@domain.com --> user2@domain.net --> user2