站点图标 Linux-技术共享

Debian, Nginx, Postfix, FastCGI环境安装mailman邮件列表程序

1.安装fcgiwrap

为了让Nginx正确地展示mailman的网页后台界面,我们需要安装fcgiwrap软件包:

sudo apt-get install fcgiwrap

安装好后,打开/etc/init.d/fcgiwrap文件

sudo vi /etc/init.d/fcgiwrap

在29行和30行,确认FCGI的用户名和组名与Nginx的用户和组名一致。Nginx默认的用户和组名是www-data。

FCGI_USER="www-data"
FCGI_GROUP="www-data"

修改好后,重启fcgiwrap

sudo service fcgiwrap restart 或 sudo systemctl restart fcgiwrap

fcgiwrap的 socket是 /var/run/fcgiwrap

2.安装mailman

sudo apt-get install mailman

在安装过程中,mailman会要求你选择要支持的语言,你可以选择英语和汉语。按空格键选择语言,选择完语言后按回车键确认。

然后选择默认的语言,我选择的是简体中文。

接下来还会弹出一个对话框,这是提醒用户创建一个mailman列表。按回车键后输入下面的命令创建mailman列表。

sudo newlist mailman

这时会要求你输入mailman列表管理员的邮箱以及设置一个密码。

现在打开/etc/aliases文件,添加mailman的邮箱别名。

sudo vi /etc/aliases

将下面的内容添加到文件末尾。

## 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"

保存文件后,输入下面的命令更新索引文件。

sudo newaliases

现在重启Postfix

sudo service postfix restart 或 sudo systemctl restart postfix

启动mailman邮件列表程序

sudo service mailman start 或 sudo systemctl start mailman

3.配置Nginx

打开vhost配置文件,假设你的vhost为/etc/nginx/sites-available/example.com

sudo vi /etc/nginx/sites-available/example.com

将下面的内容添加到server部分。

server {
[...]
        location /cgi-bin/mailman {
               root /usr/lib/;
               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
               include /etc/nginx/fastcgi_params;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
               fastcgi_intercept_errors on;
               fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
        location /images/mailman {
               alias /usr/share/images/mailman;
        }
        location /pipermail {
               alias /var/lib/mailman/archives/public;
               autoindex on;
        }
[...]
}

保存文件后重启Nginx:

sudo service nginx restart 或 sudo systemctl restart nginx

如何使用mailman邮件列表程序

列表的后台管理地址:

http://www.example.com/cgi-bin/mailman/admin/

要订阅某个列表以及查看这个列表的所有订阅用户,输入下面的地址:

http://www.example.com/cgi-bin/mailman/listinfo/

查看所有的列表以及列表的邮件归档,访问下面的地址:

http://www.example.com/pipermail

比如mailman列表的后台管理地址:

mailman列表的订阅地址:

邮件列表归档

mailman邮件列表程序的主要用途是让用户向其他列表成员发邮件讨论共同话题的,这在国外开源社区尤为常见。但我们也可以使用mailman来进行网站的电子邮件营销。不过这需要我们对mailman做点个性化配置

退出移动版