Mailman

Mailman - это программа с открыты кодом для управления обсуждениями по электронной почте и списками рассылки. Много почтовых рассылок по программам с открытым кодом (включая списки рассылки Ubuntu) используют Mailman в качестве программы почтовых списков. Она многофункциональна и проста в установке и управлении.

Установка

Mailman обеспечивает web интерфейс для администраторов и пользователей, использующих внешний почтовый сервер для отправки и приема почты. Он великолепно работает со следующими почтовыми серверами:

  1. Postfix

  2. Exim

  3. Sendmail

  4. Qmail

Мы рассмотрим как установить и настроить Mailman с web сервером Apache, а также с почтовым сервером Postfix или Exim. Если вы собираетесь устанавливать Mailman с другим почтовым сервером, обратитесь пожалуйста к разделу Ссылок.

Вам потребуется установить только один почтовый сервер и Postfix для Ubuntu является вариантом по умолчанию.

Apache2

Чтобы установить apache2 обратитесь к соответствующему разделу Установки.

Postfix

Для инструкций по установке и настройке Postfix смотрите раздел Postfix.

Exim4

Для установки Exim4 обратитесь к разделу по Exim4.

Когда exim4 устанавливается, его файлы настроек сохраняются в каталоге /etc/exim4. В Ubuntu по умолчанию файлы настройки exim4 разделены на несколько файлов. Вы можете это поменять, изменив следующую переменную в файле /etc/exim4/update-exim4.conf.

dc_use_split_config='true'

Mailman

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

sudo apt-get install mailman

Она скопирует установочные файлы в каталог /var/lib/mailman. Она также установит CGI сценарии в каталог /usr/lib/cgi-bin/mailman, создаст пользователя линукс list и его группу. Процесс mailman будет управляться этим пользователем.

Настройка

В этом разделе предполагается, что у вас удачно установлены mailman, apache2, а также postfix или exim4. Теперь вам требуется только их настроить.

Apache2

Примерный файл настройки Apache идет вместе с Mailman и помещен в /etc/mailman/apache.conf. Чтобы Apache смог его использовать, требуется переместить его в /etc/apache2/sites-available:

sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

Это установит новый VirtualHost в Apache для административного сайта Mailman. Теперь разрешим новую конфигурацию и перезагрузим Apache:

sudo a2ensite mailman.conf
sudo service apache2 restart

Mailman использует apache2 для обработки CGI сценариев. CGI сценарии Mailman устанавливаются в каталог /usr/lib/cgi-bin/mailman. Поэтому адрес mailman будет http://hostname/cgi-bin/mailman/. Вы можете внести изменения в файл /etc/apache2/sites-available/mailman.conf, если вы решили изменить такой адрес.

Postfix

Для интеграции с Postfix мы ассоциируем домен lists.example.com со списком рассылки. Пожалуйста, замените lists.example.com на домен по вашему выбору.

Вы можете использовать команду postconf для добавления необходимых настроек в /etc/postfix/main.cf:

sudo postconf -e 'relay_domains = lists.example.com'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'

В /etc/postfix/master.cf дважды проверьте, что у вас указан следующий транспорт:

mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Он вызывает сценарий postfix-to-mailman.py когда почта доставлена по списку.

Ассоциируем домен lists.example.com с транспортом Mailman с помощью транспортной карты. Отредактируйте файл /etc/postfix/transport:

lists.example.com      mailman:

Теперь дадим Postfix построить транспортную карту, введя следующее в терминале:

sudo postmap -v /etc/postfix/transport

Затем перезапустите Postfix чтобы разрешить новые настройки:

sudo /etc/init.d/postfix restart

Exim4

Когда Exim4 установлен, вы можете запустить Exim сервер, используя следующую команду из терминала:

sudo /etc/init.d/exim4 start

Чтобы mailman мог работать с Exim4, вам потребуется настроить Exim4. Как было замечено ранее, по умолчанию Exim4 использует множество файлов настроек различного типа. Для подробностей смотрите сайт Exim. Чтобы запустить mailman, нам придется добавить новый файл настройки к следующим типам настроек:

  1. Main

  2. Transport

  3. Router

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

Main

Все файлы конфигурации, относящиеся к основному (main) типу сохраняются в каталоге /etc/exim4/conf.d/main/. Вы можете добавить следующее содержимое в новый файл с именем 04_exim4-config_mailman:

# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script.  Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end

Transport

Все файлы настроек, относящиеся к транспортному (transport) типу находятся в каталоге /etc/exim4/conf.d/transport/. Вы можете добавить следующее содержимое в новый файл с именем 40_exim4-config_mailman:

  mailman_transport:
   driver = pipe
   command = MM_WRAP \
               '${if def:local_part_suffix \
                     {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
                     {post}}' \
               $local_part
    current_directory = MM_HOME
    home_directory = MM_HOME
    user = MM_UID
    group = MM_GID

Router

Аналогично, все конфигурационные файлы перенаправления (router type) находятся в каталоге /etc/exim4/conf.d/router/. Вы можете добавить следующее содержимое к новому файлу с именем 101_exim4-config_mailman:

  mailman_router:
   driver = accept
   require_files = MM_HOME/lists/$local_part/config.pck
   local_part_suffix_optional
   local_part_suffix = -bounces : -bounces+* : \
                       -confirm+* : -join : -leave : \
                       -owner : -request : -admin
   transport = mailman_transport
Очередность основных и транспортных файлов не важна и они могут считываться в любом порядке. Однако последовательность перенаправляющих конфигурационных файлов (router) должна быть именно такой. Приведенный файл должен считываться до файла 200_exim4-config_primary. Эти два конфигурационных файла содержат один тип информации. Первый файл будет иметь приоритет. Для подробностей обратитесь к секции ссылок

Mailman

После того как установлен mailman, вы можете использовать следующую команду:

sudo /etc/init.d/mailman start

Поскольку mailman установлен, вы можете создать список рассылки по умолчанию. Выполните следующую команду, чтобы создать список рассылки:

sudo /usr/sbin/newlist mailman
  Enter the email address of the person running the list: bhuvan at ubuntu.com
  Initial mailman password:
  To finish creating your mailing list, you must edit your /etc/aliases (or
  equivalent) file by adding the following lines, and possibly running the
  `newaliases' program:

  ## mailman mailing list
  mailman:              "|/var/lib/mailman/mail/mailman post mailman"
  mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
  mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
  mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
  mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
  mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
  mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
  mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
  mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
  mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

  Hit enter to notify mailman owner...

  # 

Мы настроили как Postfix так и Exim4 на распознавание всех почтовых сообщений от mailman. Поэтому нет необходимости создавать новые записи в /etc/aliases. Если вы делаете какие-либо изменения в конфигурационных файлах, не забывайте выполнять перезапуск соответствующих сервисов до перехода к следующей части.

Exim4 не использует псевдонимов (aliases) для перенаправления почты для Mailman, поскольку он использует метод перебора (discover approach). Чтобы подавить использование псевдонимов при создании списка, вам потребуется добавить строку MTA=None в конфигурационный файл Mailman /etc/mailman/mm_cfg.py.

Управление

Мы предполагаем, что у вас установка по умолчанию. Cgi сценарии mailman все еще в каталоге /usr/lib/cgi-bin/mailman/. Mailman предоставляет возможности администрирования на основе web. Чтобы получить доступ к этой странице, укажите следующий адрес:

http://hostname/cgi-bin/mailman/admin

Список рассылки по умолчанию mailman будет показан на экране. Если вы щелкните по названию списка, у вас будет запрошен пароль. Если вы введете правильный пароль, вы сможете изменить административные настройки этого списка. Вы можете создать новый список рассылки, используя утилиту командной строки (/usr/sbin/newlist). В качестве альтернативы вы можете его создать используя и web интерфейс.

Пользователи

Mailman предоставляет web интерфейс и для пользователей. Для доступа к этой страницеукажите вашему интернет-обозревателю следующий адрес:

http://hostname/cgi-bin/mailman/listinfo

На экране появится mailman - список рассылки по умолчанию. Если вы щелкните мышью на названии списка, откроется форма подписки. Вы можете ввести свой почтовый адрес, имя (необязательно) и пароль для подписки. Вам будет отправлено почтовое сообщение с уведомлением. Вы должны следовать инструкции в сообщении для подтверждения подписки.

Ссылки