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

Исходное сообщение
"Общая рассылка EXIM+PostgreSQL"

Отправлено Цыс , 22-Июн-10 17:39 
Имеется сервер на базе фрибзд 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 минут мне с рук не сойдет т.е. искать решение путем долгих экспериментов возможности нет :). Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Общая рассылка EXIM+PostgreSQL"
Отправлено PavelR , 22-Июн-10 18:28 
>[оверквотинг удален]
>  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 минут мне с рук не сойдет т.е. искать решение
>путем долгих экспериментов возможности нет :). Заранее спасибо.

поставь где-нибудь приближенную копию сервака для отладки/экспериментов.


"Общая рассылка EXIM+PostgreSQL"
Отправлено danunah , 22-Июн-10 21:52 
SELECT username || "@" || domain FROM users

"Общая рассылка EXIM+PostgreSQL"
Отправлено Цыс , 23-Июн-10 09:43 
>SELECT username || "@" || domain FROM users

Пожалуйста объясните поподробнее в каком месте и каким образом это использовать. Я так краем мозга подозреваю, что это необходимая модификация конфига для майскюэль под постгре... Но хотелось бы поточнее



"Общая рассылка EXIM+PostgreSQL"
Отправлено Александр , 23-Июн-10 11:06 
из серии дешево и сердито
написать скрипт, который выбирает из базы все действующие адреса
потом этот список использовать, как алиас для all
на первое время проблему решит, а там уже можно будет
найти и более приличное решение


"Общая рассылка EXIM+PostgreSQL"
Отправлено SubGun , 23-Июн-10 11:12 
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 же генерирует отдельное письмо каждому получателю.


"Общая рассылка EXIM+PostgreSQL"
Отправлено Цыс , 23-Июн-10 11:27 
>[оверквотинг удален]
>Поставить
>domains = mydomain.ru
>Но не факт, что выйдет. Дело в том, что результатом запроса будут
>просто данные, а надо бы их разделить запятыми и поставить в
>строчку. Так что только через all: user1,user2,user3
>
>Установи себе mailman и свяжи его с Exim.
>1. Добавление/удаление пользователей через mailman гораздо проще, чем дергать через aliases.
>2. Существует ограничение по RFC на кол-во recipients. mailman же генерирует отдельное
>письмо каждому получателю.

Очень интересная тема, так как в дальнейшем хотелось бы иметь и другие списки рассылки типа директора филиалов и тп. Я так понял ставится прямо на сервак да? А список all сможет сформировать сама из уже имеющейся базы? Или надо будет добавлять руками? Ибо получателей адское количество в районе 666 :)


"Общая рассылка EXIM+PostgreSQL"
Отправлено SubGun , 23-Июн-10 11:53 
>Очень интересная тема, так как в дальнейшем хотелось бы иметь и другие
>списки рассылки типа директора филиалов и тп. Я так понял ставится
>прямо на сервак да? А список 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 доменах. Очень доволен.


"Общая рассылка EXIM+PostgreSQL"
Отправлено Цыс , 23-Июн-10 14:04 
Вобщем, пока что ситуацию спас AD и net send * . Но на будущее хочется иметь чтото более надежное. Майлман попробовал поставить у себя на рабочем месте на убунту. Но он отказался пахать, полагаю из-за отсутствия почтового сервака у меня на машине)). Но в связи с этим возникла мысль, быть может есть какие-то решения, которые можно поставить не на сервак, а себе, а они бы зная скажем адрес сервака, логин и пароль от базы могли бы подключиться к нему и получить с него список адресов для рассылки? Типа того как работает лдап... А потом выбрав всех с @ в адресе, замутить рассылку всем, или всех у кого dir в адресе добавить в список рассылки директорам...



"Общая рассылка EXIM+PostgreSQL"
Отправлено SubGun , 23-Июн-10 14:49 
>[оверквотинг удален]
>на будущее хочется иметь чтото более надежное. Майлман попробовал поставить у
>себя на рабочем месте на убунту. Но он отказался пахать, полагаю
>из-за отсутствия почтового сервака у меня на машине)). Но в связи
>с этим возникла мысль, быть может есть какие-то решения, которые можно
>поставить не на сервак, а себе, а они бы зная скажем
>адрес сервака, логин и пароль от базы могли бы подключиться к
>нему и получить с него список адресов для рассылки? Типа того
>как работает лдап... А потом выбрав всех с @ в адресе,
>замутить рассылку всем, или всех у кого dir в адресе добавить
>в список рассылки директорам...

Mailman ставится легко. Выбрать из базы пользователей и засунуть их в mailman нет ничего проще:
echo 'SELECT CONCAT(username,"@",domain) FROM users WHERE username !=``' | mysql -u user -ppassword database > /usr/mailman/bin/add_members list

Честно говоря, это самое простое, что может быть.


"Общая рассылка EXIM+PostgreSQL"
Отправлено Цыс , 24-Июн-10 13:40 
# Список всех 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. Всем спасибо за участие!



"Общая рассылка EXIM+PostgreSQL"
Отправлено tux2002 , 25-Июн-10 14:06 
>  condition = ${if eq{$local_part}{all}{yes}{no}}

замените на
local_parts = all
Это прозрачнее чем кондишн.