Имеется сервер на базе фрибзд 7.2, экзим и постгре. Требуется настроить эту систему чтобы при отправке на all@mydomain.ru все пользователи получили это письмо. Задача простая, но осложняется тем что у меня постгре. Для майскюэля нагуглил инструкцию но адаптировать ее к своей ситуации у меня ума не хватило.# Список всех E-Mail адресов для рассылки по адресу all
MYSQL_ALL = SELECT CONCAT(username,"@",domain) FROM users
# Рассылка
all_mysql:
driver = redirect
allow_fail
allow_defer
condition = ${if eq{$local_part}{all}{yes}{no}}
data = ${lookup mysql{MYSQL_ALL}}Через файл aliases фокус типа all: *@mydomain.ru не прокатил. Как мне это реализовать с наименьшими потерями? Организация большая и сервак боевой. Его простой более 10-15 минут мне с рук не сойдет т.е. искать решение путем долгих экспериментов возможности нет :). Заранее спасибо.
>[оверквотинг удален]
> driver = redirect
> allow_fail
> allow_defer
> condition = ${if eq{$local_part}{all}{yes}{no}}
> data = ${lookup mysql{MYSQL_ALL}}
>
>Через файл aliases фокус типа all: *@mydomain.ru не прокатил. Как мне это
>реализовать с наименьшими потерями? Организация большая и сервак боевой. Его простой
>более 10-15 минут мне с рук не сойдет т.е. искать решение
>путем долгих экспериментов возможности нет :). Заранее спасибо.поставь где-нибудь приближенную копию сервака для отладки/экспериментов.
SELECT username || "@" || domain FROM users
>SELECT username || "@" || domain FROM usersПожалуйста объясните поподробнее в каком месте и каким образом это использовать. Я так краем мозга подозреваю, что это необходимая модификация конфига для майскюэль под постгре... Но хотелось бы поточнее
из серии дешево и сердито
написать скрипт, который выбирает из базы все действующие адреса
потом этот список использовать, как алиас для all
на первое время проблему решит, а там уже можно будет
найти и более приличное решение
MYSQL_ALL = SELECT CONCAT(username,"@",domain) FROM users WHERE username != ''
Убрать
condition = ${if eq{$local_part}{all}{yes}{no}}
Поставить
domains = mydomain.ru
Но не факт, что выйдет. Дело в том, что результатом запроса будут просто данные, а надо бы их разделить запятыми и поставить в строчку. Так что только через all: user1,user2,user3Установи себе mailman и свяжи его с Exim.
1. Добавление/удаление пользователей через mailman гораздо проще, чем дергать через aliases.
2. Существует ограничение по RFC на кол-во recipients. mailman же генерирует отдельное письмо каждому получателю.
>[оверквотинг удален]
>Поставить
>domains = mydomain.ru
>Но не факт, что выйдет. Дело в том, что результатом запроса будут
>просто данные, а надо бы их разделить запятыми и поставить в
>строчку. Так что только через all: user1,user2,user3
>
>Установи себе mailman и свяжи его с Exim.
>1. Добавление/удаление пользователей через mailman гораздо проще, чем дергать через aliases.
>2. Существует ограничение по RFC на кол-во recipients. mailman же генерирует отдельное
>письмо каждому получателю.Очень интересная тема, так как в дальнейшем хотелось бы иметь и другие списки рассылки типа директора филиалов и тп. Я так понял ставится прямо на сервак да? А список all сможет сформировать сама из уже имеющейся базы? Или надо будет добавлять руками? Ибо получателей адское количество в районе 666 :)
>Очень интересная тема, так как в дальнейшем хотелось бы иметь и другие
>списки рассылки типа директора филиалов и тп. Я так понял ставится
>прямо на сервак да? А список all сможет сформировать сама из
>уже имеющейся базы? Или надо будет добавлять руками? Ибо получателей адское
>количество в районе 666 :)Особенно если вы планируете много списков рассылки. Ставится элементарно, надо лишь пару действий выполнить, описанных здесь
http://list.org/mailman-install/site-list.html
и здесь
http://list.org/mailman-install/node44.html
Вяжется с Exim через здесь
http://list.org/mailman-install/node16.htmlСписки рассылки формируете вы, благо адреса можно добавлять скопом. Так же, это можно автоматизировать через скрипт. Благо управлять mailman можно не только через веб-интерфейс, но и через shell.
У меня 17 списков рассылки в 6 доменах. Очень доволен.
Вобщем, пока что ситуацию спас AD и net send * . Но на будущее хочется иметь чтото более надежное. Майлман попробовал поставить у себя на рабочем месте на убунту. Но он отказался пахать, полагаю из-за отсутствия почтового сервака у меня на машине)). Но в связи с этим возникла мысль, быть может есть какие-то решения, которые можно поставить не на сервак, а себе, а они бы зная скажем адрес сервака, логин и пароль от базы могли бы подключиться к нему и получить с него список адресов для рассылки? Типа того как работает лдап... А потом выбрав всех с @ в адресе, замутить рассылку всем, или всех у кого dir в адресе добавить в список рассылки директорам...
>[оверквотинг удален]
>на будущее хочется иметь чтото более надежное. Майлман попробовал поставить у
>себя на рабочем месте на убунту. Но он отказался пахать, полагаю
>из-за отсутствия почтового сервака у меня на машине)). Но в связи
>с этим возникла мысль, быть может есть какие-то решения, которые можно
>поставить не на сервак, а себе, а они бы зная скажем
>адрес сервака, логин и пароль от базы могли бы подключиться к
>нему и получить с него список адресов для рассылки? Типа того
>как работает лдап... А потом выбрав всех с @ в адресе,
>замутить рассылку всем, или всех у кого dir в адресе добавить
>в список рассылки директорам...Mailman ставится легко. Выбрать из базы пользователей и засунуть их в mailman нет ничего проще:
echo 'SELECT CONCAT(username,"@",domain) FROM users WHERE username !=``' | mysql -u user -ppassword database > /usr/mailman/bin/add_members listЧестно говоря, это самое простое, что может быть.
# Список всех E-Mail адресов для рассылки по адресу all
MYSQL_ALL = SELECT login FROM accounts# Рассылка
all_mysql:
driver = redirect
allow_fail
allow_defer
domains = +local_domains
condition = ${if eq{$local_part}{all}{yes}{no}}
data = ${lookup pgsql{MYSQL_ALL}}Сделал вот так. Все работает. Спасибо dikens3 с forum.lissyara.su. Всем спасибо за участие!
> condition = ${if eq{$local_part}{all}{yes}{no}}замените на
local_parts = all
Это прозрачнее чем кондишн.