На двух серверах Postfix есть два почтовых домена, скажем, a.com на server1.com и b.com на server2.com. Пользователи и псевдонимы хранятся в Active Directory, к которому мы получаем доступ с помощью модуля ldap.
- Копия всей почты, отправленной[email protected]на сервере server1 следует перенаправить на[email protected].
- Копия всей почты, отправленной[email protected]на сервере2 следует перенаправить на[email protected].
Как предотвратить почтовый цикл в этом сценарии? Могу ли я пересылать всю почту, кроме той, которая приходит с одного домена?
решение1
Если я правильно понял задачу, always_bcc вам не друг.
Вместо этого я бы попробовал транспортный демон (транспортную таблицу).
в транспорте:
a.com smtp:[mail.relay.of.b.com]
b.com smtp:[mail.relay.of.a.com]
Конечно, мы предполагаем, что хотим пересылать сообщения на то же имя пользователя.
Для обновленного вопроса: если вы хотите отправлять копии, вы можете использовать транспорт виртуального псевдонима. virtual_alias_maps = regexp:regexpalias
и в регулярных выражениях сделать что-то вроде этого:
/.+@(a|b).com$/ [email protected],[email protected]
после обычногоpostmap регулярные выражения псевдонимыСоответствующие письма должны отправляться в оба пункта назначения. Вы должны быть осторожны, если у вас есть другие источники виртуальных псевдонимов, определенные на сервере, поскольку виртуальное псевдонимирование будет выполнено только один раз и прекратится при первом совпадении. Например, если у вас есть:
virtual_alias_maps =
hash:/etc/postfix/myaliases
regexp:/etc/postfix/regexpalias
И в myaliases вы пересылаете[email protected]к[email protected], то ваше регулярное выражение никогда не будет достигнуто и одно письмо будет отправлено на[email protected].
Поскольку вы пересылаете почту напрямую (транспорт), а эти серверы предположительно не будут отправлять почту обратно, виртуального алиасинга больше не происходит, поэтому не должно быть никаких почтовых циклов.