如何使用邮件列表

可以用WEB方式进行订阅邮件列表,此处我们讲的是如何用邮件方式来订阅和管理邮件列表。
首先假定我们已经知道邮件列表的地址,以westdc-report@lists.westgis.ac.cn为例,并假定邮件列表的管理程序为mailman。
一、邮件列表介绍

邮件列表也叫Mailing List,是Internet上的一种重要工具,用于各种群体之间的信息交流和信息发布。

邮件列表具有传播范围广的特点,可以向Internet上数十万个用户迅速传递消息,传递的方式可以是主持人发言,自由讨论和授权发言人发言等方式。

邮件列表具有使用简单方便的特点,只要能够使用Email,就可以使用邮件列表。

二、详细功能
要订阅一个邮件列表, 请发送 e-mail 至 列表名-subscribe@lists.westgis.ac.cn。例如:

发送 e-mail 至 westdc-report-subscribe@lists.westgis.ac.cn,然后在收到邮件列表返回的邮件后直接回复即可订阅westdc-report的邮件列表。

如果你想取消订阅, 请发送 e-mail至 <列表名>-unsubscribe-<你的地址>@lists.westgis.ac.cn, 用字符”=”来替换”@”, 比如你的e-mail地址是me@mydomain.com,以下是个示例:

westdc-report-unsubscribe-me=mydomain.com@lists.westgis.ac.cn

三、注意事项
1、请不要使用邮件的自动回复到邮件列表地址!
首先是一个礼貌问题,因为你自动回复的内容会发送给邮件列表里的所有人。其次,若有多人使用自动回复,将会引起类似邮件炸弹的效果。
2、请不要发送退定请求到邮件列表。
也是一个礼貌问题。发送退定请求可以参考上面的如何退定,也可以通过WEB界面进行退定,也可以发送给邮件列表管理员要求退定。

参考:
1 http://wiki.woodpecker.org.cn/moin/PythonCN/FAQ
2 http://wiki.openrays.org/index.php?title=Mailinglist

转移mailman

mailman所在服务器的硬盘损坏,需要转移到另外一个服务器上。
需要备份的目录:/var/lib/mailman/
在新服务器上搭建好mailman环境后,拷贝原服务器上的archives,lists,data三个目录下的所有内容。
之后:

sudo chown -R list:list /var/lib/mailman

在继续搭建mailman的WEB环境之后,就可以测试了。

mailman中使用postfix建立多域

mailman: 2.1.9
debian etch
服务器上很早就搭建了postfix和mailman服务,但后来又产生新要求,要求mailman中再添加一个域名。原来做过多次尝试,一直未果。

今天把服务器升级为etch,顺便把x和gnome都干掉了。然后想看看这个问题能不能解决,就又试验起来了。

http://www.python.org/cgi-bin/faqw-mm.py?query=virtual+domain&querytype=simple&casefold=yes&req=search
开始都是以为要查询virtual domain,进入了误区,结果一直无解。

官方文档:http://www.gnu.org/software/mailman/mailman-install/node13.html
看了上面的文档后,又实验了多种配置,还是有问题,发到新邮件列表的信一直自动转发到老邮件列表上,导致查无此人。

Reporting-MTA: dns; debian.westgis.ac.cn
Received-From-MTA: smtp; debian.westgis.ac.cn ([127.0.0.1])
Arrival-Date: Sat, 30 Dec 2006 12:09:02 +0800 (CST)
Original-Recipient: rfc822;westdc@lists.westgis.ac.cn
Final-Recipient: rfc822;westdc@list.cngis.org
Action: failed
Status: 5.1.1
Remote-MTA: dns; 127.0.0.1
Diagnostic-Code: smtp; 550 5.1.1 : Recipient address rejected: User unknown in virtual mailbox table
Last-Attempt-Date: Sat, 30 Dec 2006 12:09:12 +0800 (CST)

修改mm_cfg.py里的相关参数,都试验了一遍,错误信息依旧。然后查看到syslog里的出错信息,也是邮件地址的后缀自动变换了,非常奇怪。
于是检查postfix的main.cf设置,看到:

myorigin = list.cngis.org

想到了是否和这个配置有关系,于是首先修改为另外一个地址,然后再次试验,错误依旧,但错误信息发生了变化!
于是把这个配置注释掉,万事大吉!
想想好像这个地方原来是专门为配置mailman而加上的,没想到错误会出现在这里。当时好像是参照网上的教程直接搬下来的,还是官方的文档可靠阿。

这个问题已经都快半年没有解决了,今天终于解决了,爽阿。
此办法的缺点:各域名之间不能创建同名的邮件列表,即不能同时创建a@dom1.org和a@dom2.org。这个问题在mailman 2.2的版本中得到了解决。

定制mailman的UI

这儿所说的定制,指的是对mailman的用户界面的定制,不包括内部功能的定制。
当然,在进行定制之前,本文已经假设你已经安装好了mailman,并具有mailman的管理员权限,可以创建新的邮件列表。
有两种方法可以定制mailman的UI,一种是仅仅提供订阅功能,然后所有的参数都post到mailman自己的cgi程序上进行处理;二是对mailman的界面直接定制,这个需要用户具有相当的HTML基础。
1. 提供全新的页面,只要你在HTML页面提供了和mailman自身相同的form、input,然后post到同样的cgi页面进行处理,不过这样还有个缺点,就是post之后的页面不由自身控制了。当然你也可以将其做成后台iframe运行,提交后控制iframe不可见,然后用js控制一段成功的消息上来。或者这个html页面只是生成一个包含email地址的文本文件,当然直接入库也可以的,然后后台自动运行把这些email地址送到mailman中去。
2. 对mailman自身的UI进行定制,这个可以在修改mailman的模板(/etc/mailman)或直接在mailman的WEB管理界面上进行修改(HTML页面编辑功能),直接修改具体的HTML页面,但是若是使用独立的CSS和JS脚本,需要放置在对应的WEB目录下,多数是相对于WEB或虚拟主机的根目录。

升级DEBIAN服务器

因为是远程升级,危险比较大,一直在犹豫是否要升级,正好网络室点名了存在漏洞,而且最近的邮件列表受垃圾邮件骚扰的厉害,就狠心升级了系统。
这个系统大概运行了有2年了,一直没怎么升级,这次就直接升级到目前的testing版本了。
还好,中间没有出什么大问题,中间又把SpamAssassin重新设置了一下,不知道效果如何。
目前存在的问题就是原来自己编译安装的那部分程序还是需要重新编译一下,如mapserver和POSTGIS等。
升级过程发现mailman现在支持中文了,非常感谢http://mail.cs.hit.edu.cn:8080/mmcn/提供的中文化。

连接邮件列表和论坛:mail2forum

一直以来,想把邮件列表和论坛能有机结合起来。然后看到http://www.ubuntuforums.org/采用了VBB,就结合了邮件列表的功能,但不知道结合的程度如何。
无意中,在mapserver的邮件列表中讨论采用邮件列表还是采用论坛形式进行技术讨论中,发现有人提出可以采用二者的结合形式:mail2forum, http://www.mail2forum.com,可以和phpbb论坛有机的结合起来。
在自己的机器上,进行了初步的尝试,安装了PHPBB和M2F插件,发现其还不能有机的和mailman(我所使用的邮件列表)结合起来。

或许,可以考虑,采用一种变通的办法来处理:在邮件列表中加入一论坛专用的邮件帐号,专门用于邮件列表的in,out则直接发送给该邮件列表,但要注意其不能接受自己的邮件,否则会形成死循环。有待进一步测试。

debian sarge mailman on postfix

已经安装了postfix-mysql。postfix的virtual domain是放在MYSQL中的。
安装mailman:
apt-get install mailman
配置:
1. /etc/postfix/main.cf

owner_request_special = no

alias_maps = hash:/etc/postfix/aliases,
hash:/usr/local/mailman/data/aliases
virtual_alias_maps = ,
hash:/usr/local/mailman/data/virtual-mailman

2. /etc/mailman/mm_cfg.py

MTA = ‘Postfix’
POSTFIX_STYLE_VIRTUAL_DOMAINS = [‘list.cngis.org’, list.mygis.org’]

3. 生成两个文件

cd /usr/local/mailman
bin/genaliases
su
chmod 666 data/aliases*
touch data/virtual-mailman
touch data/virtual-mailman.db
chmod 666 data/virtual-mailman*

4、 生成默认的mail list
newlist mailman
5、 重新启动服务

/etc/init.d/postfix reload
/etc/init.d/mailman restart

可能以后新加入的mail list都需要postfix reload。
BTW:可惜目前的mailman不支持中文。
总结: 多看官方的安装文档,检查系统的LOG记录,遇到问题到GOOGLE搜索答案。