20.16. Создание списка рассылки с применением couriermlm
Проблема
Требуется создать списки рассылки на сервере Postfix/Courier.
Решение
Вам потребуются программы Courier Mailing List Manager (couriermlm), dot-courier и cron.
Пользователь может создать список в любом каталоге, в который ему разрешена запись. Рекомендуется создавать каталоги списков за пределами домашних каталогов пользователей, например, в /var
.
Создание каталога для нового списка рассылки выполняется следующей командой:
$ couriermlm create /var/lists/php_list ADDRESS=php@test.net
Команда создаёт каталог, содержащий множество шаблонов и подкаталогов:
$ ls -xa /var/lists/php_list
adminrequest.tmpl archive
bounces commands
confsubj.tmpl digestsubj.tmpl
fetch.tmpl fetchsubj.tmpl
headeradd help.tmpl
idxheader2html.tmpl idxheaderhtml.tmpl
idxheadertxt.tmpl idxsubject.tmpl
Прочитайте и отредактируйте по мере необходимости следующие шаблонные файлы:
help.tmpl
— сообщение, отправляемое CourierMLM в ответ на запрос помощи.sub.tmpl
— шаблон первого ответа на запрос о подписке, подписка проводится в два этапа и требует подтверждения.headeradd
— дополнительные почтовые заголовки, которые должны присутствовать в сообщениях списка.headerdel
— удаляемые почтовые заголовки.
Если вы ведёте общедоступный список рассылки и хотите скрыть адреса подписчиков от спамеров, используйте headerdel
в сочетании с headeradd
:
# headerdel
Reply-To:
From:
# headeradd
Reply-To:php@test.net
From:php@test.net
Настройте /etc/crontab
для автоматического обновления списка:
# m h dom mon dow user command
@midnight alice couriermlm daily /var/lists/php_list
0 * * * * alice couriermlm hourly /var/lists/php_list
Напоследок создайте несколько файлов dot-courier
для отправки административных сообщений нужному пользователю. Эти файлы должны находиться в домашнем каталоге администратора списка. В данном примере список php@test.net
администрируется пользователем valorie
.
Сначала valorie
создаёт /home/valorie/.courier-php
, в котором хранится информация о местонахождении списка:
/usr/bin/couriermlm msg /var/lists/php_list
Далее создаётся файл /home/valorie/.courier-php-owner
:
valorie@test.net
И файл /home/valorie/.courier-php-default
:
/usr/bin/couriermlm ctlmsg /var/lists/php_list
Комментарий
Пользователи списка могут использовать следующие команды в формате список-команда@домен
для взаимодействия с рассылкой:
php-help@test.net
— запрос помощи.php-subscribe@test.net
— запрос на подписку.php-unsubscribe@test.net
— запрос на отписку.
Файлы dot-courier
обеспечивают пересылку запросов нужному пользователю, что позволяет удобно администрировать список и избегать ненужного спама.
См. также
courier(8), dot-courier(5).