Solidot 不再使用 Google Groups 的邮件列表了,装上了 Mailman (http://lists.solidot.org ), 主要用于团队交流,Slash 中文版交流和Solidot 的用户之间的交流。虽然 Google Groups 很酷,但我们觉得使用强大的 Mailman 更有趣。
这里介绍一下 Mailman 的安装过程,操作系统是 Debian, MTA 是 Exim4.
1. Mailman 简介。
Mailman 是一个开源的邮件列表管理软件,由自由软件基金会开发和维护,官方网站是 www.list.org . Mailman 的列表项目、存档邮件都可以在 Web 上显示,可以允许用户参与订阅、取消订阅、管理订阅等。Mailman 可以运行在基于 POSIX 的绝大多数系统,比如 UNIX, MacOSX 和 GNU/Linux, 目前不支持 Windows. Mailman 支持的邮件服务器有 Postfix, Sendmail, Exim 和 qmail. 要求 Python 版本2.1 以上,推荐使用 Python 2.3 或更新的版本。当然一个网络服务器是不可少的,Apache 是最佳选择。
1. 下载最新版 Mailman 2.1.8 , 放到一个临时目录并解压缩。
# cd /root/src
# tar zxvf mailman-2.1.8.tar.gz
2. 创建 Mailman 用户组、用户和安装目录。Mailman 需要自己专用的用户和用户组,这里使用的名字都是 mailman:
# groupadd mailman
# useradd mailman
创建 Mailman 安装目录,我们安装在
设置安装目录的权限:# make dir /usr/local/mailman
3. 配置安装 Mailman.# cd /usr/local/mailman
# chgrp mailman .
# chmod a+rx,g+ws .
Mailman 的安装不需要用 Root 身份,以免权限发生错误,这里换到前面创建的 mailman 用户来安装:
到Mailman源码存放目录:#su mailman
4. 检查安装情况。# cd /root/src/mailman-2.1.8
# ./configure --prefix=/usr/local/mailman --with-mail-gid=nobody --with-cgi-gid=nobody --with-urlhost=lists.solidot.org --with-username=mailman --with-groupname=mailman
# make
# make install
到 Mailman 的安装目录:
如果有错误,运行下面的修复:# cd /usr/local/mailman
# bin/check_perms
检查完成后看到一个"No problem found"那么安装这一部分就成功了。# bin/check_perms -f
5. 配置 Exim4 邮件服务器。
在 Exim4 的主要设置中(main) 加入下面的内容:
在 Exim4 的 Router 设置中加入下面的,位置在 begin routers 这一行之后均可。# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
MAILMAN_HOME=/usr/local/mailman
MAILM AN_WRAP=MAILMAN_HOME/mail/mailman
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script.
MAILMAN_USER=mailman
MAILMAN_GROUP=mailm an
在 Exim4 的 Transport 部分加入下面的:mailman_router:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
6. 配置 Apache 服务器。mailman_transport:
driver = pipe
command = MAILMAN_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = MAILMAN_USER
group = MAILMAN_GROUP
在 httpd.conf 加入下面的内容,使 Mailman 可以通过 Apache 访问。
Solidot 使用的是二级域名,设置了一个虚拟机 (Virtual Host), 内容如下:ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
Alias /pipermail/ /usr/local/mailman/archives/public/
复制 Mailman 的 Logo 图片到 Apache Icons 目录:NameVirtualHost 10.2.168.2:80
<VirtualHost 10.2.168.2:80>
ServerAdmin admin@lists.solidot.org
DocumentRoot /usr/local/mailman/html/
ServerName lists.solidot.org
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
order allow,deny
allow from all
</Directory>
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
Alias /pipermail/ /usr/local/mailman/archives/public/
Alias /icons/ /usr/local/mailman/icons/
</VirtualHost>
重起 Apache:# cp /usr/local/mailman/icons/*.{jpg,png} /path/to/apache/icons
7. 创建网站方面的邮件列表。# /etc/init.d/apache restart
然后初始化它:# bin/newlist mailman
启动 Mailman:# bin/config_list -i data/sitelist.cfg mailman
8. 创建你的首个邮件列表。# bin/mailmanctl start
到这里 Mailman 的安装配置就完成了,可以开始创建你的邮件列表了。可以用命令行也可以到 Web 页面: http://www.yoursite.com/mailman/create
创建后可以到 http://www.yoursite.com/mailman/listinfo 查看列表的状况。
后记:
Mailman 的配置文件在 ~/mailman/Mailman/mm_cfg.py, 你可以根据需要添加一些个人的设置,这个文件将覆盖 ~/mailman/Mailman/Defaults.py 里边的设置。
Solidot 安装后的演示地址: http://lists.solidot.org/ .
目前使用 Mailman 作为邮件列表管理的网站和机构: http://list.org/inthenews.html .