首页 > gforge, wordpress > mailman 集成 MHonArc 操作指南

mailman 集成 MHonArc 操作指南

mailman 内置的邮件归档程序pipmail ,不能处理mime类型邮件, 一个图文并茂的邮件 ,会被拆分成多个图片,html的邮件也会另存为一个附件。阅读很不方便。那么如何改善呢? 一般建议使用其他的邮件归档程序和mailman集成,下文描述mailman集成MHonArc的步骤:

 

–1)下载并安装MHonArc-2.6.16-1.noarch.rpm
—  请参考: http://www.mhonarc.org/#support
—  下载def-mime.mrc 作为默认的resource 文件
—  请参考:http://www.mhonarc.org/MHonArc/doc/rcfileexs/def-mime.mrc.html

–2)配置mailman 使用MHonArc
—  请参考:http://www.mhonarc.org/archive/html/mhonarc-users/2001-10/msg00021.html
—  在/etc/mailman/mm_cfg.py 中添加:
PUBLIC_ARCHIVE_URL  = ‘/mhonarchive/%(listname)s’
PRIVATE_ARCHIVE_URL  = ‘/mhonarchive/%(listname)s’
PUBLIC_EXTERNAL_ARCHIVER = ‘/usr/bin/mhonarc -rcfile /etc/mailman/def-mime.mrc -add -outdir /var/lib/mhonarc/archives/%(listname)s > /dev/null’
PRIVATE_EXTERNAL_ARCHIVER = ‘/usr/bin/mhonarc -rcfile /etc/mailman/def-mime.mrc -add -outdir /var/lib/mhonarc/archives/%(listname)s > /dev/null’

–3)配置httpd.conf
vi /etc/httpd/conf/httpd.conf
–找到 Alias /icons/ 在下面添加:
Alias /mhonarchive/ “/var/lib/mhonarc/archives/”
<Directory “/var/lib/mhonarc/archives/”>
    Options -Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

–4)建立列表目录
cd /var/lib
mkdir /mhonarc
chown root:mailman mhonarc
cd mhonarc
mkdir archives
chown root:mailman archives
cd archives

mkdir testlist
chown root:mailman testlist
chmod 775 testlist

–所有需要 mhonarc 归档的列表,都需要手动建立对应的目录,改变目录的group,写权限.
–当新建一个mailman 列表时,系统还是会在默认的归档目录中自动建立对应的列表目录,
–但不会在EXTERNAL_ARCHIVER 指定的目录中自动建立对应的列表目录.所以很遗憾,需要手动建立.

–5)重启Apache
service httpd restart

–6)初始化转换
prefix=/var/lib/mailman
export prefix
mhonarc -mbox $prefix/archives/private/testlist.mbox/testlist.mbox -outdir /var/lib/mhonarc/archives/testlist -rcfile /etc/mailman/def-mime.mrc

— 转换后在/var/lib/mhonarc/archives/testlist目录下后会产生一个.mhonarc.db 文件,该文件是def-mime.mrc 模板必须的,要使得mailman 对 此文件有读权限。
— 否则mhonarc运行会报错,归档失败,但不影响邮件发送。要避免这个问题可以如下更改:
chown root:mailman .mhonarc.db

把目录的读写权限设置为:755

chmod 755 /var/lib/mhonarc/archives/testlist

把目录的所有者更改为:root:mailman

chown  root:mailman /var/lib/mhonarc/archives/testlist

 

–所有需要 mhonarc 归档的列表,都需要初始化转化一下.

–7)重启mailman
service mailman restart

–8)问题
    8.1) 从web访问归档时,提示Forbidden ,不允许访问,怎么办?
         答:原因是mailman 使用mhonarc 转换邮件为html的时候, 写文件时, 只有owner和group的读权限,没有other的读权限,所以无法访问.
            最简单的方法就是把 apache用户放入到mailman 用户组下去.
            比如: usermod -G apache,mailman,cvs_project apache
            加入后,需要重启apache.
    8.2) 从web访问归档时, 显示的是目录,而不是默认的归档列表页. 怎么办?
         答: 使用mhonarc 产生的索引文件名是:threads.html 和maillist.html 没有index.html 所以没有显示默认页面.
            最简单的方法,在httpd.conf  中 DirectoryIndex 参数添加 threads.html  
            DirectoryIndex index.html index.html.var threads.html 
            加入后,需要重启apache.
    8.3) 我发现gforge 集成mailman,由Gforge创建的maillist 不受上述改动的影响
         答: 是这样的,在gforge的httpd.conf中,对mailman 别名有自己的定义. 这个问题在有时间的时候可以继续研究.
    8.4) 如果哪天我不想使用mhonarc来归档了,还是恢复到pipmail来归档,那么会有什么问题么?
         答: mailman的逻辑是,先归档到默认的地方,然后查看是否有外部归档程序,如果有,再交给外部归档程序继续归档.所以原始归档总是存在的.
             没有什么问题.
    8.5) 从web访问归档时, 发现来自post-notification的html模版的邮件中的中文是乱码,但是outlook发过来的是正常的.怎么解决?
         答: 在gmail中查原始文件,发现字符集不对,只需要修改post-notification的html 的email模版就可以了.把字符集改成UTF-8.

–9)其他Mailman相关问题

    9.1)如果我原来使用80端口,后来使用:81作为web端口,如何更改以前的列表使得其中的所有链接都带有:81?

          答:按照下面的做法即可实现:

                进入 mailman 目录(一般是/usr/lib/mailman),在其中新建一個文件 (取名为 webdata 好了),內容为:
                web_page_url = ‘http://gforge.retailsolution.cn:81/mailman’
                然后使用
               $ bin/config_list -i webdata yourlist
               命令,你就会得到
               Non-standard property restored: web_page_url
               这就是成功了。

               查看你的管理页面,就会发现里面的链接都已经指向新的域名了。

 

 

关于作者:

昵称:商云方
档案信息:顾问, HAND张江技术中心
联系方式:你可以通过yunfang.shang@hand-china.com联系作者
点击查看发表过的所有文章...
本文永久链接: http://blog.retailsolution.cn/archives/2226

 

 

对本文的评价:

 

 

  1. 2009年5月29日19:53 | #1

    备注:MailMan是在安装完Gforge 后就自动带了。如果需要单独安装Mailman 可参考:http://blog.chinaunix.net/u/30686/showart_422200.html

  2. admin
    2010年5月9日09:30 | #2

    以maillist :2010sh1为例说明,把一个新建的邮件列表转成MhonArc归档所需执行的脚本:

    prefix=/var/lib/mailman
    export prefix
    cd /var/lib/mhonarc/archives
    mkdir 2010sh1
    chown root:mailman 2010sh1
    chmod 775 2010sh1
    mhonarc -mbox $prefix/archives/private/2010sh1.mbox -outdir /var/lib/mhonarc/archives/2010sh1 -rcfile /etc/mailman/def-mime.mrc
    cd /var/lib/mhonarc/archives/2010sh1
    chown root:mailman .mhonarc.db
    chmod 755 /var/lib/mhonarc/archives/2010sh1
    chown root:mailman /var/lib/mhonarc/archives/2010sh1
    chown mailman:mailman /var/lib/mhonarc/archives/2010sh1/maillist.html
    chown mailman:mailman /var/lib/mhonarc/archives/2010sh1/threads.html
    service mailman restart

  3. 2010年7月7日15:19 | #3

    写了个脚本:

    mhonarcnewdir.sh

    #!/bin/bash
    if [ $# != 1 ]
    then
    echo “Usage: mhonarcnewdir listname (you should create mailman list first then do this command)”
    else
    echo “Your input list is: ” $1

    prefix=/var/lib/mailman
    export prefix
    cd /var/lib/mhonarc/archives
    mkdir $1
    chown root:mailman $1
    chmod 777 $1
    mhonarc -mbox $prefix/archives/private/$1.mbox -outdir /var/lib/mhonarc/archives/$1 -rcfile /etc/mailman/def-mime.mrc
    cd /var/lib/mhonarc/archives/$1
    chown mailman:mailman .mhonarc.db
    chown root:mailman /var/lib/mhonarc/archives/$1
    chown mailman:mailman /var/lib/mhonarc/archives/$1/maillist.html
    chown mailman:mailman /var/lib/mhonarc/archives/$1/threads.html
    service mailman restart

    fi

  4. admin
    2010年7月8日09:26 | #4

    创建 列表三步骤:
    1、新建mailman列表
    cd /usr/lib/mailman/bin
    ./newlist –urlhost gforge.retailsolution.cn:81 listname

    2、更新sendmail帐户信息
    vi /etc/aliases
    把刚才新建列表提示的帐户信息拷贝并粘贴到这个文件中,保存后,使用 newaliases 命令更新库信息。

    3、信件mhonarc归档文件夹
    cd /var/lib/mhonarc/archives
    ./mhonarcnewdir listname

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.