Mailman 是一个管理电子邮件讨论及电子通讯列表的开源程序。许多开源的邮件列表 (包括所有的 Ubuntu 邮件列表)使用 Mailman 作为他们的邮件列表软件。它是强大的且易于安装和维护。
Mailman 为管理员和用户提供一个 web 界面。因此,它要求 apache 要有 mod_perl 的支持。Mailman 使用外部邮件服务器来发送和接收邮件。它可以与下列邮件服务器很好的工作:
Postfix
Exim
Sendmail
Qmail
我们将看到如何安装 mailman、apache web 服务器和 Exim 邮件服务器。如果您希望安装 mailman 和一个不同的邮件服务器,请参考参考部分。
若要安装 apache2,详情请参考 HTTPD 安装 一节。
若想安装 Exim4,请您在终端运行以下命令:
sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config
一旦安装完 exim4,配置文件会被存储在 /etc/exim4
目录。在 Ubuntu 中,exim4 的配置文件默认被分散到不同的文件中。您可以通过改变 /etc/exim4/update-exim4.conf
文件中的以下变量来改变这种行为:
dc_use_split_config='true'
本节假定您已经成功安装 mailman、apache2 和exim4。现在您只需要配置它们。
一旦 apache2 安装之后,您可以在 /etc/apache2/apache2.conf
文件添加下列行:
Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"
Mailman 使用 apache2 来运行它的 CGI 脚本。mailman 的 CGI 脚本被安装在 /usr/lib/cgi-bin/mailman 目录中。因此 mailman 的 url 将是 http://hostname/cgi-bin/mailman/。如果您希望改变这一状况,您可以修改 /etc/apache2/apache2.conf
文件。
一旦 Exim4 安装之后,您可以在终端提示符后使用下列命令启动 Exim 服务器:
sudo apt-get /etc/init.d/exim4 start
为了使 mailman 可以和 exim4 一起工作,您需要配置 exim4。正如先前所说的那样,在缺省状态下 exim4 使用不同类型的多个配置文件。详情请参考 Exim 网站。要运行 mailman,我们可以新建一个配置文件到下列配置类型:
主
传输
路由器
Exim 按这些小的配置文件顺序创建出一个主配置文件。因此这些配置文件的顺序是非常重要的。
所有隶属于主类别的配置文件都被保存在 /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
所有隶属于传输类型的文件被保存在 /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
所有隶属于路由类的所有配置文件都被保存在 /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
![]() |
|
主类和传输类的配置文件的顺序可以随意。但路由类的配置文件的顺序必须相同。该文件必须在 200_exim4-config_primary 文件之前出现。如果两个配置文件包含相同类型的信息。第一个文件优先。详情请参阅参考部分。 |
安装 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...
#
我们已经把 exim 配置成可以识别所有来自 mailman 的邮件。因此并不强制要在 /etc/aliases
中添加任何新的条目。如果您对配置文件做了改动,请确保您在进入下一节之前重启了这些服务。
我们假设您是默认安装。mailman 的 cgi 脚本还在 /usr/lib/cgi-bin/mailman/ 目录中。mailman 提供了一个基于 web 的管理工具。若想访问这个页面,请将您的浏览器指向以下 url:
http://hostname/cgi-bin/mailman/admin
默认的邮件列表 mailman 会在这个屏幕中出现。如果您点击邮件列表的名称,它会向您询问通行密码。如果您输入了正确的密码,您就可以修改这个邮件列表的管理设定。您可以使用命令行工具来创建新的邮件列表(/usr/sbin/newlist)。或者您也可以使用 web 界面
Mailman 为用户提供了一个 web 界面,可以在您的浏览器中输入下列 url 来访问该页:
http://hostname/cgi-bin/mailman/listinfo
缺省邮件列表 mailman 将出现在屏幕上。如果您点击邮件列表名,它将显示订阅表单。您可以输入您的邮件地址、姓名 (可选)及密码来订阅。一个邀请邮件将发送给您。您可以根据该邮件的指示完成订阅。