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

Исходное сообщение
"Exim: авторизация на смартхосте под разными аккаунтами"

Отправлено Anton Konkevich , 12-Авг-09 02:01 
Пытаюсь настроить отправку всей домашней почты через exim. Нужно, чтобы в зависимости от адреса отправителя MTA отправлял письмо через соответствующий сервер. Проблема в том, что на некоторых серверах есть несколько аккаунтов (например, на smtp.gmail.com - несколько аккаунтов googleapps от разных доменов), а я не нашёл способа передать информацию о текущем письме в аутентификатор (подобно передаче address_data с роутера в транспорт). Есть ли какой-то способ реализовать подобную задумку?

Содержание

Сообщения в этом обсуждении
"Exim: авторизация на смартхосте под разными аккаунтами"
Отправлено Hetzer , 12-Авг-09 21:20 
а я не нашёл
>способа передать информацию о текущем письме в аутентификатор (подобно передаче address_data
>с роутера в транспорт). Есть ли какой-то способ реализовать подобную задумку?
>

временные переменные acl_c.. и/или acl_m..


"Exim: авторизация на смартхосте под разными аккаунтами"
Отправлено Anton Konkevich , 13-Авг-09 01:23 
> временные переменные acl_c.. и/или acl_m..

Хм. В документации сказано только про их видимость в транспортах, роутерах и в фильтрах, про аутентификаторы ничего не сказано. Впрочем, надо будет попробовать.


"Exim: авторизация на смартхосте под разными аккаунтами"
Отправлено Hetzer , 13-Авг-09 12:39 
>> временные переменные acl_c.. и/или acl_m..
>
>Хм. В документации сказано только про их видимость в транспортах, роутерах и
>в фильтрах, про аутентификаторы ничего не сказано. Впрочем, надо будет попробовать.
>

А зачем тебе аутентификаторы? они выполняют задачу авторизации на локальном мта. Для авторизации на удалённом мта, используют роутер smarthost.  
А может быть я неверно понял постановку задачи? Если тебя нужно в зависимости от логина авторизации на локальном мта, выбирать хост/логин/пароль для дальнейшей доставки письма, то использовать можно authenticated_id



"Exim: авторизация на смартхосте под разными аккаунтами"
Отправлено Anton Konkevich , 13-Авг-09 19:55 
>А зачем тебе аутентификаторы? они выполняют задачу авторизации на локальном мта. Для
>авторизации на удалённом мта, используют роутер smarthost.

А как можно в роутере прописать авторизацию? Насколько я видел, при использовании смартхоста авторизация тоже прописывалась в аутентификаторах, через
client_name = ...
client_secret = ....

>А может быть я неверно понял постановку задачи? Если тебя нужно в
>зависимости от логина авторизации на локальном мта, выбирать хост/логин/пароль для дальнейшей
>доставки письма, то использовать можно authenticated_id

Нет, не в зависимости от логина, а в зависимости от адреса отправителя. Один пользователь может отправлять через MTA письма со всех своих ящиков, скажем, два разных ящика на gmail.com, один на mail.ru и т.д. Логин авторизации на локальном мта при этом будет один, а адреса отправителя - разные. Нужно подключиться к соответствующему смартхосту (напр., smtp.gmail.com при обратном адресе @gmail.com), и выбрать логин/пароль, соответствующие данному отправителю.


"Exim: авторизация на смартхосте под разными аккаунтами"
Отправлено Hetzer , 14-Авг-09 00:32 
>>А зачем тебе аутентификаторы? они выполняют задачу авторизации на локальном мта. Для
>>авторизации на удалённом мта, используют роутер smarthost.
>
>А как можно в роутере прописать авторизацию? Насколько я видел, при использовании
>смартхоста авторизация тоже прописывалась в аутентификаторах, через
>client_name = ...
>client_secret = ....
>

всё верно, моя ошибка

>Нет, не в зависимости от логина, а в зависимости от адреса отправителя.
>Один пользователь может отправлять через MTA письма со всех своих ящиков,
>скажем, два разных ящика на gmail.com, один на mail.ru и т.д.
>Логин авторизации на локальном мта при этом будет один, а адреса
>отправителя - разные. Нужно подключиться к соответствующему смартхосту (напр., smtp.gmail.com при
>обратном адресе @gmail.com), и выбрать логин/пароль, соответствующие данному отправителю.

тогда всё просто:
в manualrouter-е формируем route_data для каждого домена на основе $sender_address_domain, ну а  $sender_address виден в аутентификаторах. Логин/пароль для client_send вытаскиваем из хранилища, где ключ  $sender_address