Я настроил 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