Mailman

来自Ubuntu中文
跳到导航跳到搜索

Mailman 安装配置

原文出处:

原文作者:

授权许可:

翻译人员:Tony Gelbert、Friskit

校正人员:anying_001

贡献人员:

适用版本: 文章状态:等待翻译



This guide explains how to setup Mailman mailing list software with the apache web server and the exim mail server in Ubuntu. The intended audience is experienced linux users and system administrators.

本向导将向您介绍如何在Ubuntu下使用apache网络服务器系统以及exim电子邮件服务器系统安装配置Mailman电子邮件收发软件。此向导只针对有经验的linux用户以及系统管理员。

Introduction(引言)

If you are new to Mailman, this section provides a quick introduction to Mailman.

假如这是您第一次接触Mailman,本章的内容或许可以对您起到抛砖引玉的作用。

Mailman is an open source program for managing electronic mail discussions and e-newsletter lists. Many open source mailing lists (including all the Ubuntu mailing lists) use Mailman as their mailing list software. It is powerful, easy to install and easy to maintain.

Mailman是一个专门用于管理电邮讨论群以及newsletter的开源软件。有许多开源的mailinglist(包括Ubuntu mailing list)使用Mailman作为创建mailing list的工具。Mailman功能强大,易于安装及维护。

Assumptions(安装前的须知)

It is assumed that you know how to run linux commands, edit files, and start and stop services in the linux system. It is also assumed that you have administrative access to an Ubuntu system, that you have internet connection and that you have configured /etc/apt/sources.list.

您必须保证您熟悉如何执行linux命令,如何编辑文件,如何在linux系统里开始以及终止服务。同时您必须是Ubuntu系统的管理员,已经连接上网,并已经预设好/etc/apt/sources.list.

Installation(安装)

Mailman provides the web interface for the administrators and users. Mailman uses an external mailserver to send/receive emails. It works perfectly with the following mailservers:

Mailman为管理员以及普通用户提供了网页界面。Mailman采用外设的电邮服务器来发送以及接受邮件,他能很好的在以下服务器下工作

In this section, we will see howto install mailman, apache web server and Exim or Postfix mail server. If you wish to install mailman with other mail server, please refer the references pages. The references are given at the end of this page.

在本章我们将为您介绍如何安装mailman,如何apache网络服务器以及Exim或Postfix电邮服务器。如果您需要为其他的电邮服务器安装mailman,请参考后面的特别需要指南,您将在文章的末尾处找到。

Apache2

Apache2 is already in the repository. Install the following packages: apache2 (see InstallingSoftware).

Apache2 已经在库中。请安装一下包文件:apache2(参见:安装软件|see InstallingSoftware)

Mail server integration(Mail 服务集成)

Exim4

Exim4 is already in the repository. Install the following packages: exim4 (see InstallingSoftware).

Exim4 已经在库中。请安装以下包文件:exim4 (参见 安装软件|see InstallingSoftware).


Once exim4 is installed, the configuration files are stored in /etc/exim4/. In ubuntu, by default, the exim4 configuration files are split accross different files. You can change this behaviour by changing the following variable in the file

一旦exim4被安装,设置文件将会存储在/etc/exim4/。在ubuntu中默认的情况下, exim4 设置文件被一分为二。你能通过改变以下这几个文件中的变量改变这些显示情况:

/etc/exim4/update-exim4.conf:

dc_use_split_config='true'

We can discuss more about exim4 configuration in next section. 我们将在下一节讨论Exim4更多的设置方法^_^

If you face any problem during installation and if you are unable to solve it, please ask on the appropriate mailing list for further assistance.

如果你在安装时遇到了任何你不能解决的问题,请适当的咨询mailing list以获得更多的帮助。^_^

Postfix(后缀)

Install the following packages: postfix (see InstallingSotware).
安装以下包文件: postfix(参见 安装软件)

Just choose Internet Site and default options. For further details on Postfix installation, visit the UbuntuHelp:Postfix page.
请选择“Internet Site(网站)”和default options默认选项。为了了解有关“安装Postfix”的更多详细情况,请访问 UbuntuHelp:Postfix 页面

Mailman

Mailman is already in the repository. Install the following packages: mailman (see InstallingSoftware).
Mailman 已经在库中。请安装以下包文件mailman (参见 软件安装).


It copies the installation files in /var/lib/mailman. It installs the cgi scripts in /usr/lib/cgi-bin/mailman directory.
它从/var/lib/mailman中复制了安装文件。它会安装CGI脚本在/usr/lib/cgi-bin/mailman 文件夹。

It creates 'list' linux user'. It creates 'list' linux group. The mailman process would be owned by this user.
Mailman 创建了一个名为“list”的Linux用户。它还创建了一个名为list的Linux用户组。Mailman的处理进程将会被这个用户所掌握。

Configuration(配置)

This section assumes you have successfully completed the installation of mailman, apache and mail server. Now you just need to configure them. At the end of this section, your mailman will be ready to rock!
如果你在这一节中成功地完成了Mailman,Apache和Mail server的安装。现在,你就需要配置它们。当你完成这一节后,你的Mailman将会征程工作!^_^


Mail server installation(邮件服务器的安装)

Exim4 integration(Exim4 集成)

Once exim4 is installed, you can run it using the following command:
一旦Exim4被安装,你就可以通过以下命令去运行它:

# /etc/init.d/exim4 start

In order to make mailman work with exim4, you need to configure exim4. As mentioned earlier, by default, exim4 uses multiple configuration files of different types. For details, please refer Exim website.
为了是Mailman使用Exim4开始工作,你需要配置Exim4.如前所述,在默认情况,Exim4使用不同类型的多重配置文件。详细信息,请参见Exim 网站

To run mailman, we should make add new configuration file to the following configuration types: 想要运行Mailman,我们需要添加一个新的配置文件到以下的配置配型。

  • Main
  • Transport
  • Router

Exim creates a master configuration file, by sorting all these mini configuration files. So, the order of these configuration files is important. Exim通过排列所有的小型配置文件来创建3个主配置文件。所以,配置文件的顺序是非常非常重要的!

Main

All the configuration files belonging to main type are stored in /etc/exim4/conf.d/main/ directory. You can add the following content in a new file. You may name it as 04_exim4-config_mailman::

所有属于main类型的配置文件被储存在/etc/exim4/conf.d/main/文件夹。你能添加以下的内容在一个新的文件。你可以把它命名为 04_exim4-config_mailman::

# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# By default this is set to "/usr/local/mailman"
# On a Red Hat/Fedora system using the RPM use "/var/mailman"
# On Debian using the deb package use "/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=bluestar.co.in
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# 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

All the configuration files belonging to transport type are stored in /etc/exim4/conf.d/transport/ directory. You can add the following content in a new file. You may name it as 40_exim4-config_mailman::

所有属于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

IMPORTANT: In the above configuration, in line no 5, i've escaped three braces (\}\}\}) to make it compatible with this document. Please unescape it when you save this file.
“注意:在以上的配置中,在第5行,我已经对三个(\}\}\}) 进行编码来保证推这个文档的兼容性。请在你保存文件之前解码它们。“

Router

All the configuration files belonging to router type are stored in /etc/exim4/conf.d/router/ directory. You can add the following content in a new file. You may name it as 101_exim4-config_mailman::

所有属于router 类型的配置文件被储存在 /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

IMPORTANT: The order of main and transport configuration files can be in any order. But, the order of router configuration files must be in the same order. This particular file, must appear before 200_exim4-config_primary file. These two configuration files contain same type of information. The first file takes the precedence. For more details, please refer to the exim website or the references section in this page.

注意:Main和transport的配置文件可以使用任何顺序。但是router的配置文件必须使用同样的顺序。特定的文件必须在200_exim4-config_primary文件之前出现。这两个配置文件包含了同样的信息类型。第一个文件持有优先权。更多的细节,请参见exim网站,或者参考本页中的信息。

Postfix integration

For this integration, we will associates the domain lists.example.com with the mailing lists. As a consequence, the domain will be reserved for the mailing-list traffic. You can nevertheless have a website to this domain (usually, the domain lists.example.com is used by the mailing list system and for the mailman web interface).

Edit the main.cf to add the following lines:

relay_domains = lists.example.com
transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1

In master.cf check that you ever have the following transport:

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

It calls the postfix-to-mailman.py script when a mail is delivered to a list.

Associate the domain lists.example.com to the mailman transport with the transport map. Edit the file /etc/postfix/transport:

lists.example.com      mailman:

Do not forget to launch postmap -v /etc/postfix/transport after this modification.

That's all ! It is very easy and very efficient.

Mailman

Once mailman is installed, you should create the default mailing list. Run the following command:

# newlist mailman
Enter the email of the person running the list: bhuvaneswaran at NOSPAM gmail.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...
#

Once mailman is installed and the default mailing list created, you can run it using the following command:

# /etc/init.d/mailman start

We have configured exim and postfix to recognize all emails from mailman. So, it's not mandatory to make any new entries in /etc/aliases.

If you have made any changes to the configuration files, please ensure that you restart those services, before continuing to next section.

Administration

Web administration

In this section, we assume you have done the default installation. The mailman cgi scripts are still in /usr/lib/cgi-bin/mailman directory.

Mailman provides web based administration facility. To access this page, point your browser to the following url: http://hostname/cgi-bin/mailman/admin

The default mailing list, 'mailman' would appear in this screen. If you click the mailing list name, it would ask for authentication password. If you enter the correct password, you would be able to change administrative settings of this mailing list.

You can create new mailing list using command line utilility (newlist). Alternatively, you can create new mailing list using web interface.

For each list, you have three web sections:

  • http://hostname/cgi-bin/mailman/admin/list: admin interface for the list list.
  • http://hostname/cgi-bin/mailman/listinfo/list: user interface for the list list.
  • http://hostname/cgi-bin/mailman/admindb/list: pending messages waiting for approval.

Command line interface

Mailman also have a set of command line tools. Here are the most important:

  • newlist: add a new list
  • rmlist ''list'': delete a list
  • list_lists: list all the lists
  • list_members ''list'': list all the members of the list
  • add_members ''[email protected]'' ''list'': add e-mail [email protected] to the list list.
  • remove_members ''[email protected]'' ''list'': remove e-mail [email protected] to the list list
  • mmsitepass: define a site password to access administration web interfaces

Users

Mailman provides web based interfaces for users. To access this page, point your browser to the following url:

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

The default mailing list, 'mailman' would appear in this screen. If you click the mailing list name, it would display the subscription form. You can enter your email address, name (optional) and password to subscribe. An email intimation would be sent to you. You can follow the instructions in the email to subscribe.

References

Hope this document is useful. Feedbacks are welcome to bhuvaneswaran at NOSPAM gmail.com.