exim. роутер-> local_part ->транспорт

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

exim. роутер-> local_part ->транспорт

Непрочитанное сообщение cyrus_user » 2007-04-24 12:19:50

Привет. Каким образом можно передать из роутера значение local_part в транспорт, чтобы он был в виде $local_part@$domain?
зачем мне это нужно: есть почтовая система, где аккаунты хранятся в виде:
mail=bob@xxx uid=bob
необходимо завести в неё второй домен, тогда аккаунты будут в таком виде
(возможно я слишком идеализировал, но мне именно так представляется правильным ):
mail=bob@xxx uid=bob@xxx
mail=bob@yyy uid=bob@yyy
доступ к cyrus2.213 в таком виде работает. остаётся связать это с exim4.67
вообщем-то неважно какой из транспортов я использую, в любом случае
queued for cyrus_trans transport: local_part = bob
тщетные попытки роутера redirect где data=$local_part@$domain проваливаются:
router skipped: previously routed bob@xxx
и далее всё равно local_part = bob
если сделать вывод, что средствами роутера это не решить, то как в транспорте заменить local_part вообще не нахожу зацепок. использую такой:
cyrus_trans:
driver = smtp
protocol = lmtp
--skip--

Наставьте на путь правильный.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35019
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-24 12:26:48

путь истинный - использовать вместо соббаки что-то иное.
Убей их всех! Бог потом рассортирует...

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-04-24 13:30:33

lissyara писал(а):путь истинный - использовать вместо соббаки что-то иное.
подумал.. ну учётная запись в cyrus понимает замены символов '@' c '%',
делаем в redirect
data=$local_part%$domain и он зачем то входит в луп и начинает наращивать имя
как-то можно его ограничить?

или что-то другое имелось в виду?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35019
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-24 14:19:58

слэш заюзай... например...
или равно...
Убей их всех! Бог потом рассортирует...

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

вроде получается, но...

Непрочитанное сообщение cyrus_user » 2007-04-25 7:32:35

вообщем сделал так.
существующий пользователь остаётся
mail=bob@xxx uid=bob
а с новым доменом так
mail=bob@yyy uid=bob_yyy

теперь самое интересное в интересующих роутерах
тут я заменяю $local_part с bob на bob_yyy в почтовом адресе bob@yyy.
тогда не пройдёт через роутер cyrus_router
total_rewrite:
driver = redirect
allow_fail
allow_defer
domains = yyy
data = ${lookup ldapm {ldap:///dc=aaa?uid?sub?(&(mail=$local_part@yyy)(objectClass=inetOrgPerson))}}

этот роутер последний, проверка наличия почтового адреса в системе тут не даёт принимать письмо целиком, обрывает соединение на этапе rcpt to
cyrus_router:
driver = accept
transport = cyrus_trans
condition = ${lookup ldap {ldap:///dc=aaa?mail?sub?(&(objectClass=inetOrgPerson)(mail=${local_part}@${domain}))}{$value} fail}
cannot_route_message = no such mailbox here.

если я поставлю этот роутер перед cyrus_router (в нём уберу проверку на ящик), то письмо примется целиком, что мне совершенно ненужно

user_check_router:
no_verify
driver = redirect
data="${lookup ldap {ldap:///dc=aaa?mail?sub?(&(objectClass=inetOrgPerson)(mail=${local_part}@${domain}))}{$value} {:fail: no such mailbox here.}}"
allow_fail

как тут поступать? пока есть мысль делать на каждый домен cyrus_router.
Для существующих юзеров домена xxx оставляем старый
cyrus_router:
driver = accept
transport = cyrus_trans
добавляем только домен
domains= xxx
condition = ${lookup ldap {ldap:///dc=aaa?mail?sub?(&(objectClass=inetOrgPerson)(mail=${local_part}@${domain}))}{$value} fail}
cannot_route_message = no such mailbox here.

для новых пользователей домена yyy.
cyrus_router_yyy:
driver = accept
transport = cyrus_trans
domains= yyy
condition = ${lookup ldap {ldap:///dc=aaa?uid?sub?(&(objectClass=inetOrgPerson)(mail=${local_part}@${domain}))}{$value} fail}
cannot_route_message = no such mailbox here.

вот только сомневаюсь, будет ли проверка rcpt работать должным образом.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35019
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-25 8:15:10

будет
===========
берегите нервы и время окружающих - используйте кнопочку
Убей их всех! Бог потом рассортирует...

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

Непрочитанное сообщение cyrus_user » 2007-04-25 9:13:43

lissyara писал(а):будет
===========
берегите нервы и время окружающих - используйте кнопочку

Код: Выделить всё

[/quote]
спасибо, обнадёжили