URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95252
[ Назад ]

Исходное сообщение
"sendmail - как релеить почтовый домен с обработкой"

Отправлено mahoune , 04-Дек-13 10:51 
Дано:

Почтовые домены

@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 этой работой. От того, что это только в примере два исключения, а на практике десятка два, и достаточно плотный трафик на них.
Пользователей же тоже тысячи, от этого усложнение конфигурации для каждого пользователя нежелательны.


Содержание

Сообщения в этом обсуждении
"sendmail - как релеить почтовый домен с обработкой"
Отправлено Andrey Mitrofanov , 04-Дек-13 11:08 
Потратил пару минут, не благодари, здесь подают убогим под настроение.

Сначала guugle://sendmail transport table выдало мне кучу ссылок про переход sm->postfix,

Потом в списках guugle://sendmail domain relay нашёлся, на вскидку, похожий ответ (и закончились две минуты):

http://serverfault.com/questions/93977/configuring-sendmail-...


"sendmail - как релеить почтовый домен с обработкой"
Отправлено mahoune , 04-Дек-13 12:17 
> Потратил пару минут, не благодари, здесь подают убогим под настроение.
> Сначала guugle://sendmail transport table выдало мне кучу ссылок про переход sm->postfix,
> Потом в списках guugle://sendmail domain relay нашёлся, на вскидку, похожий ответ (и
> закончились две минуты):
> http://serverfault.com/questions/93977/configuring-sendmail-...

Не то. Там просто как сделать релей описывется, без возможности сделать исключений для пары-тройки адресов.


"sendmail - как релеить почтовый домен с обработкой"
Отправлено Z0termaNN , 05-Дек-13 15:50 
я не совсем понимаю почему не просто перенаправить всех нелокальных пользователей
на servB ?

DLesmtp:servB



"sendmail - как релеить почтовый домен с обработкой"
Отправлено gruzzy , 05-Дек-13 17:23 
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')


"sendmail - как релеить почтовый домен с обработкой"
Отправлено mahoune , 06-Дек-13 11:21 
> 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, где такого адреса нет и вернется письмо с отлупом, что пользователь отсутствует.


"sendmail - как релеить почтовый домен с обработкой"
Отправлено gruzzy , 06-Дек-13 11:56 
а их не надо там прописывать. у тебя же релей.

"sendmail - как релеить почтовый домен с обработкой"
Отправлено gruzzy , 06-Дек-13 11:59 
эта, забыл еще вот

добавь в mc-файл
MODIFY_MAILER_FLAGS(`SMTP', `+A')
MAILER(smtp)


"sendmail - как релеить почтовый домен с обработкой"
Отправлено mahoune , 06-Дек-13 14:40 
> эта, забыл еще вот
> добавь в mc-файл
> MODIFY_MAILER_FLAGS(`SMTP', `+A')
> MAILER(smtp)

Отлично! Вот теперь заработало! Спасибо огромное!