Debian 8, Nginx, Postfix, FastCGI环境安装mailman邮件列表程序
关于Mailman
mailman是一个邮件列表程序,它是一个自由软件。有很多开源社区网站在使用mailman。这篇文章介绍如何安装并使用mailman来创建邮件列表,向订阅用户发送邮件。
先前条件
这篇教程假定你已经安装好了LEMP以及Postfix。点击此处阅读如何安装LEMP,点击此处学习如何安装Postfix邮件服务器。
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做点个性化配置,在下一篇文章中,我将介绍如何个性化配置。