在 Debian 与 Exim4 下安装 Mailman 邮件列表软件

来源:互联网 发布:软件开发技术指标 编辑:程序博客网 时间:2024/05/27 21:14

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 安装目录,我们安装在

/usr/local 目录下:
# make dir /usr/local/mailman
设置安装目录的权限:
# cd /usr/local/mailman
# chgrp mailman .
# chmod a+rx,g+ws .
3. 配置安装 Mailman.
Mailman 的安装不需要用 Root 身份,以免权限发生错误,这里换到前面创建的 mailman 用户来安装:
#su mailman
到Mailman源码存放目录:
# 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
4. 检查安装情况。
到 Mailman 的安装目录:
# cd /usr/local/mailman
# bin/check_perms
如果有错误,运行下面的修复:
# bin/check_perms -f
检查完成后看到一个"No problem found"那么安装这一部分就成功了。

5. 配置 Exim4 邮件服务器。
在 Exim4 的主要设置中(main) 加入下面的内容:
# 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 的 Router 设置中加入下面的,位置在 begin routers 这一行之后均可。
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
在 Exim4 的 Transport 部分加入下面的:
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
6. 配置 Apache 服务器。
在 httpd.conf 加入下面的内容,使 Mailman 可以通过 Apache 访问。
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
Alias /pipermail/ /usr/local/mailman/archives/public/
Solidot 使用的是二级域名,设置了一个虚拟机 (Virtual Host), 内容如下:
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>
复制 Mailman 的 Logo 图片到 Apache Icons 目录:
# cp /usr/local/mailman/icons/*.{jpg,png} /path/to/apache/icons
重起 Apache:
# /etc/init.d/apache restart
7. 创建网站方面的邮件列表。
# bin/newlist mailman
然后初始化它:
# bin/config_list -i data/sitelist.cfg mailman
启动 Mailman:
# bin/mailmanctl start
8. 创建你的首个邮件列表。
到这里 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.
原创粉丝点击