Настройка списка рассылки с помощью mlmmj и postfix

http://mlmmj.mmj.dk

mlmmj -- очень простой и тривиальный менеджер списков рассылки, наверное не может сравниться с монстрами типа GNU Mailman. Но, будучи простым и тривиальным, обладает преимуществом в простоте настройки, собственно никакой настройки там и нет, открываете файл README, он помогает создать новый список, открываете TUNABLES, там написано как его сконфигурировать.

Будем считать, что Postfix уже настроен, и посылает и получает письма из внешнего мира.

Для начала, нужно изменить настройки Postfix, установив recipient_delimiter в положение '+', можно сделать либо руками в main.cf, либо командой

postconf -e 'recipient_delimiter=+'


которая изменит main.cf и перезапустит демон.

Теперь можно создать списки рассылки как указано в README. А вот дальше начинаются проблемы с правами доступа. mlmmj хранит свое имущество в /var/spool/mlmmj, соответственно mlmmj-recieve должен иметь право туда писать.

Один из возможных вариантов -- добавить нового системного пользователя и сменить права на /var/spool/mlmmj:

groupadd -r mlmmj
useradd -c "User for mlmmj" -d /var/spool/mlmmj -g mlmmj -r -s mlmmj
chown mlmmj:mlmmj /var/spool/mlmmj


Теперь нужно объяснить Postfix что делать с письмами; для этого создаем в /etc/aliases.d/mlmmj файл с нужным содержимым:

mlmmj-test: "|/usr/bin/mlmmj-recieve -L /var/spool/mlmmj/mlmmj-test/"


и делаем на него

chown mlmmj:mlmmj /etc/aliases.d/mlmmj


Это означает, что mlmmj-recieve будет запущен Postfix от имени пользователя mlmmj ( по умолчанию он запускает от nobody, или смотри man ).

Дальше делаем
setfacl -m user:mlmmj:rwx /etc/aliases.d
SuSEconfig --module postfix


Это маленький кусочек черной магии. SuSEconfig просматривая aliases.d сам сообразит, что нужно переделать базы привязок, но для создания mlmmj.db потребуются права для пользователя mlmmj на создание файлов в aliases.d, поскольку перестройка базы привязок произойдёт от имени того пользователя, которому принадлежит файл. В конце концов, в aliases.d должны оказаться два файла mlmmj и mlmmj.db, владелец которых mlmmj, а в

postconf alias_maps


скажет что-то подобное

alias_maps = hash:/etc/aliases, hash:/etc/aliases.d/mlmmj


В /etc/cron.d/mlmmj добавляем, в соответствии с инструкцией

0 */2 * * *  mlmmj /usr/bin/mlmmj-maintd -F -L /var/spool/mlmmj/mlmmj-test

Комментариев нет: