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

Постфикс: always_bcc все домены, кроме одного

На двух серверах Postfix есть два почтовых домена, скажем, a.com на server1.com и b.com на server2.com. Пользователи и псевдонимы хранятся в Active Directory, доступ к которому мы получаем с помощью модуля ldap.

Как мне предотвратить зацикливание почты в этом сценарии? Могу ли я пересылать всю почту, кроме тех, которые поступают из одного домена?

Если я хорошо понимаю задачу, always_bcc тебе не друг.

Вместо этого я бы попробовал демон транспорта (транспортную таблицу).

в транспорте:

 a.com  smtp:[mail.relay.of.b.com]
 b.com  smtp:[mail.relay.of.a.com]

Конечно, мы предполагаем, что хотим перенаправить на то же имя пользователя.


По обновленному вопросу: если вы хотите отправлять копии, вы можете использовать виртуальный транспорт псевдонимов. virtual_alias_maps = регулярное выражение: regexpalias

и в regexpalias сделайте что-то вроде этого:

 /.+@(a|b).com$/   $1@a.com,$1@b.com

после обычного postmap regexpalias совпадающие письма должны отправляться по обоим направлениям. Вы должны быть осторожны, если у вас есть другие источники виртуальных псевдонимов, определенные на сервере, потому что виртуальный псевдоним будет выполнен только один раз и завершится при первом совпадении. Например, если у вас есть:

 virtual_alias_maps = 
          hash:/etc/postfix/myaliases
          regexp:/etc/postfix/regexpalias

И в myaliases вы пересылаете bob@a.com на boby@a.com, тогда ваше регулярное выражение никогда не будет достигнуто, и одно письмо будет отправлено на boby@a.com.

Поскольку вы пересылаете почту напрямую (транспорт), и эти серверы якобы не будут отправлять почту обратно, больше не будет виртуального псевдонима, поэтому не должно быть петель для почты.