Дано:Почтовые домены
@foo.ru
@bar.ruСерверы:
ServA - Сервер (sendmail) принимающий почту из интернет для всех почтовых доменов.
ServB - Сервер (Exchange) с почтовыми ящиками пользователей в домене @foo.ru и @bar.ru
ServC - Сервер (sendmail) с парсингом входящей почты для некоторых системных адресов в доменах @foo.ru и @bar.ru.ServA является MX для доменов @foo.ru и @bar.ru
Все пользовательские почтовые ящики живут на ServB. При условии что jdoe@foo.ru и jdoe@bar.ru два разных пользователя.
Задача:
На сервере ServA передавать почту для адресов в доменах @foo.ru и @bar.ru на сервер ServB, при этом исключить передачу почты для адресов sales@foo.ru и shop@bar.ru
Почту для этих двух адресов следует передать на ServC где в aliases имеется две записи:sales-foo.ru: "|/root/parse_sales.sh"
shop-bar.ru: "|/root/parse_shop.sh"Как пытался решить:
Прописать домены foo.ru и bar.ru на сервере ServA в файле local-host-names
Добавить в файл virtusertable записи:sales@foo.ru: sales-foo.ru@ServC
shop@bar.ru: shop-bar.ru@ServC
@foo.ru: %1-foo.ru@ServB
@bar.ru: %1-bar.ru@ServBВ принципе работает. Но усложняет настройку на сервере ServB.
Приходится для каждого пользователя прописывать 2 почтовых адреса:
smith@foo.ru и smith-foo.ru@ServBВозникает вопрос:
А нельзя ли на ServA сказать, что есть два адреса sales@foo.ru и shop@bar.ru и их следует отреврайтить на sales-foo.ru@ServC и shop-bar.ru@ServC соответственно. А всю остальную почту, согласно mailertable передать на ServBКонечно, как вариант, я могу почту для адресов sales@foo.ru и shop@bar.ru принять на ServB и уже там отреврайтить и переслать, но желание было не нагружать ServB этой работой. От того, что это только в примере два исключения, а на практике десятка два, и достаточно плотный трафик на них.
Пользователей же тоже тысячи, от этого усложнение конфигурации для каждого пользователя нежелательны.
Потратил пару минут, не благодари, здесь подают убогим под настроение.Сначала guugle://sendmail transport table выдало мне кучу ссылок про переход sm->postfix,
Потом в списках guugle://sendmail domain relay нашёлся, на вскидку, похожий ответ (и закончились две минуты):
http://serverfault.com/questions/93977/configuring-sendmail-...
> Потратил пару минут, не благодари, здесь подают убогим под настроение.
> Сначала guugle://sendmail transport table выдало мне кучу ссылок про переход sm->postfix,
> Потом в списках guugle://sendmail domain relay нашёлся, на вскидку, похожий ответ (и
> закончились две минуты):
> http://serverfault.com/questions/93977/configuring-sendmail-...Не то. Там просто как сделать релей описывется, без возможности сделать исключений для пары-тройки адресов.
я не совсем понимаю почему не просто перенаправить всех нелокальных пользователей
на servB ?DLesmtp:servB
aliases
sales@foo.ru: sales@fake-foo.ru
shop@bar.ru: shop@fake-bar.rumailertable
foo.ru esmtp:ServB
bar.ru esmtp:ServB
fake-foo.ru esmtp:ServC
fake-bar.ru esmtp:ServCHOST.mc
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
> aliases
> sales@foo.ru: sales@fake-foo.ru
> shop@bar.ru: shop@fake-bar.ru
> mailertable
> foo.ru esmtp:ServB
> bar.ru esmtp:ServB
> fake-foo.ru esmtp:ServC
> fake-bar.ru esmtp:ServC
> HOST.mc
> FEATURE(mailertable, `hash -o /etc/mail/mailertable')Так не работает.
Если прописать домены foo.ru и bar.ru в файл local-host-names то получаем ошибку User unknown на те адреса которые не указаны в aliases
RCPT TO: <jdoe@foo.ru>
550 5.1.1 <jdoe@foo.ru>... User unknownЕсли не прописывать, и тем самым не принимать домены foo.ru и bar.ru локально, то aliases не обрабатывается и получаем, что письмо на адрес sales@foo.ru не будет отреврайчено на sales@fake-foo.ru и уйдет на ServB, где такого адреса нет и вернется письмо с отлупом, что пользователь отсутствует.
а их не надо там прописывать. у тебя же релей.
эта, забыл еще вотдобавь в mc-файл
MODIFY_MAILER_FLAGS(`SMTP', `+A')
MAILER(smtp)
> эта, забыл еще вот
> добавь в mc-файл
> MODIFY_MAILER_FLAGS(`SMTP', `+A')
> MAILER(smtp)Отлично! Вот теперь заработало! Спасибо огромное!