Журнал Системный Администратор, Июль 2004

Журнал Системный Администратор

Июль 2004

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке

Версия для печати Вернуться к оглавлению

«Кто стучится в дверь ко мне…» Обзор системы поддержки списков рассылок GNU Mailman

Обзор системы поддержки списков рассылок GNU Mailman

Андрей Маркелов

Нет, это, конечно, не милиция (надеюсь, вы не используете знания, полученные со страниц журнала, в целях, противоречащих вашему местному законодательству). Речь пойдет об открытом программном продукте, предназначенном для создания собственных списков рассылки – Mailman (в переводе с англ. – почтальон). Сей продукт расположился в глобальной паутине по адресу http://www.list.org. Mailman распространяется в соответствии с General Public License. Используется в своих рассылках такими маститыми IT-компаниями, как Red Hat, Apple Computer, Dell Computers и большим числом GNU-проектов, включая The XFree86 Project, Samba, Exim, XEmacs. Со списком сайтов, где используется рассматриваемый продукт, можно ознакомиться по ссылке http://www.list.org/inthenews.html.

Программа обладает обширным списком возможностей. Вот некоторые из них:

n  Управление списками, подпиской и пользовательской конфигурацией через веб-интерфейс.

n  Модерирование рассылок, поддержка открытых и закрытых списков рассылки, фильтров.

n  Поддержка архивов списков рассылки.

n  Автоответчик.

 

Прежде чем приступить к установке, ознакомимся с требованиями к системе, на которую ставится Mailman:

n  Естественно, должен присутствовать почтовый сервис. Mailman работает с Sendmail, Postfix, Exim и qmail. На моей тестовой системе стоял Sendmail, поэтому на него и буду ориентироваться в описании.

n  Веб-сервер с поддержкой CGI/1.1 API.

n  GCC 2.8.1 или выше.

n  Интерпретатор Python, на котором, собственно, и написана система (с небольшими кусочками кода на C). Поддерживаются версии 2.1 и выше.

Я проверял установку системы на дистрибутиве White Box Enterprise Linux 3 (http://www.whiteboxlinux.org), который является версией Red Hat Enterprise Linux 3, заново собранной из свободно доступных исходников.

В моем случае интеграция «почтальона» производилась с веб-сервером Apache. Далее в статье будет дан необходимый минимум сведений, достаточный для установки Mailman и создания своего собственного списка рассылки.

Установка

Скачиваем с сайта проекта либо с одного из зеркал архив mailman.tar.gz. Последняя версия «почтальона» на момент написания статьи была 2.1.5. Конечно, можно было бы найти и поставить Mailman из rpm-файла. Так было бы проще, но, учитывая, что не все читатели используют системы на основе менеджера пакетов rpm, рассмотрим установку из исходных текстов. Разархивируем скачанный файл в каталог /tmp.

gunzip mailman.tar.gz

tar –xvf mailman.tar

Для дальнейших действий требуются полномочия супервизора. Создаем пользователя mailman, являющегося членом группы mailman.

В дистрибутивах, основывающихся на Red Hat Linux это делается одной командой:

useradd mailman

Теперь создаем директорию, в которую будет установлен Mailman и даем на нее права:

mkdir /usr/local/mailman

chgrp mailman /usr/local/mailman

chmod a+rx,g+ws /usr/local/mailman

Далее заходим в систему как пользователь mailman или другой пользователь, которого вы предварительно включили в группу mailman. Важно, чтобы эти шаги выполнялись не от лица суперпользователя:

cd /tmp/mailman-2.1.5/

./configure --with-cgi-gid=apache --with-mail-gid=mail

make install

Теперь проверим корректность разрешений на файлы при помощи специального скрипта, входящего в пакет:

cd /usr/local/mailman

./bin/check_perms

Скрипт должен выдать сообщение о том, что проблем с правами не обнаружено.

Далее, даем команду exit, и уже под пользователем root правим httpd.conf, добавив туда строчки:

ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/

Alias /pipermail/ /usr/local/mailman/archives/public

 

<Directory “/usr/local/mailman/archives/public/”>

    AddDefaultCharset Off

</Directory>

Таким образом, мы предписываем Apache, что из указанного каталога разрешается выполнять CGI-скрипты, создаем алиас для /archives/public/ и выключаем для этого каталога кодировку «по умолчанию».

Потом копируем логотипы Mailman, Python, GNU Logo в доступное вашему веб-серверу место, и не забываем перезапустить сам веб-сервер:

cp /usr/local/mailman/icons/* /var/www/icons

service httpd restart

Создаем служебный «site-wide»-список под названием mailman:

./bin/newlist mailman

По запросу вводим mail ведущего список и пароль (на этот адрес будет выслано письмо с подтверждением и указанным паролем).

Теперь, согласно инструкциям, выданным после отработки команды, добавляем в /etc/aliases псевдонимы (в качестве примера был создан список под именем test):

test: "|/usr/local/mailman/mail/mailman post test"

test-admin: "|/usr/local/mailman/mail/mailman admin test"

test-bounces: "|/usr/local/mailman/mail/mailman bounces test"

test-confirm: "|/usr/local/mailman/mail/mailman confirm test"

test-join: "|/usr/local/mailman/mail/mailman join test"

test-leave: "|/usr/local/mailman/mail/mailman leave test"

test-owner: "|/usr/local/mailman/mail/mailman owner test"

test-request: "|/usr/local/mailman/mail/mailman request test"

test-subscribe: "|/usr/local/mailman/mail/mailman subscribe test"

test-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe test"

Если ваш Sendmail идет с включенной по умолчанию опцией smrsh, ограничивающей исполнение скриптов через MTA (а в случае использования дистрибутивов, не базирующихся на Red Hat Linux, это именно так), то вам необходимо в каталоге /etc/smrsh/ создать симлинк на mailman:

cd /etc/smrsh/

ln –s /usr/local/mailman/mail/mailman mailman

Следующий шаг – создание списка периодически выполняемых задач при помощи crontab (например, оповещение администратора о запросах на включение пользователей в список рассылки):

cd /usr/local/mailman/cron

crontab –u mailman crontab.in

cd ..

Теперь запустим демона вручную, а на будущее добавим возможность автоматического старта после перезагрузки сервера. Команды для дистрибутивов, поддерживающих chkconfig, следующие:

./bin/mailmanctl start

cp scripts/mailman /etc/init.d/mailman

chkconfig –add mailman

Проверьте правильность выставленных значений переменных DEFAULT_EMAIL_HOST и DEFAULT_URL_HOST в файле ./Mailman/Defaults.py. Они должны содержать полное имя вашего почтового и веб-сервера.

Далее применяем шаблон сайта (его можно было предварительно отредактировать, но мы все оставим по умолчанию). Шаблон содержит практически все настройки системы, и хорошо задокументирован. При первой, тестовой установке я предлагаю его не изменять, так как с настройками можно «поиграться» и через веб-интерфейс. Так будет намного нагляднее.

./bin/config_list –I data/sitelist.cfg mailman

Теперь задаем пароль администратора сайта. Он понадобится для создания публичных списков рассылки.

./bin/mmsitepass

Если в процессе конфигурирования у вас что-то пойдет не очень гладко, рекомендую просмотреть FAQ по адресу: http://www.python.org/cgi-bin/faqw-mm.py?req=index. Также обратите внимание на логи «почтальона», ведущиеся в каталоге /usr/local/mailman/logs/, и возможные блокировки в /usr/local/mailman/loсks/.

Создаем список рассылки

Теперь у нас все готово для создания первого списка рассылки. Идем по ссылке: http://сервер.домен.ru/mailman/create, и заполняем поля: имя списка, пароль, почтовый ящик владельца, язык. В самом последнем поле вводим пароль администратора сайта, который мы задавали командой mmsitepass.

После успешного создания списка вам придет письмо с подтверждением, и будет доступна ссылка: http://сервер.домен.ru/mailman/admin/имя_списка, по которой можно вызвать интерфейс администратора. А по http://сервер.домен.ru/mailman/listinfo/имя_списка можно подписаться на список. Также по http://сервер.домен.ru /mailman/listinfo приведен общий перечень всех списков рассылки, существующих на сайте. Естественно, в нем пока присутствует только один элемент.

Протестировать новый список, предварительно подписавшись на него, можно, отправив письмо на адрес имя_списка@сервер.домен.ru.

Я не буду подробно описывать интерфейс администратора и настройки списков, поскольку все параметры снабжены вполне понятными описаниями на русском языке.




Все права зарезервированы. Этот материал принадлежит или лицензирован компании PLARANA INC. Только для частного использования. Любое распространение запрещено без письменного разрешения PLARANA INC
Версия для печати Вернуться к оглавлению
oread