Я настроил 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 ...]
Решение также должно работать с адресами электронной почты юникода меня уже сильно раздражает глупый драйвер 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