How To Integrating Zimbra with Mailman on CentOS

Posted by

This guidance will describe how to integrating Zimbra with Mailman on CentOS. This guidance refers into previous article in here : https://imanudin.net/2014/09/06/how-to-integrating-zimbra-8-5-x-with-mailman/ that use SUSE/SLES as Linux System with some adjustment and improvement.

Information System

Domain : imanudin.net
Hostname : mail.imanudin.net

# Install packages and dependencies for compile Mailman

1.yum install python python-devel gcc gcc-c++

# Install dnspython. This packages required for compile Mailman

1.cd /srv/
2.wget -c https://pypi.python.org/packages/source/d/dnspython/dnspython-1.12.0.zip
3.unzip dnspython-1.12.0.zip
4.cd dnspython-1.12.0
5.python setup.py install

# Download Mailman and extract

1.cd /srv/
2.wget -c http://ftp.gnu.org/gnu/mailman/mailman-2.1.20.tgz
3.tar -zxvf mailman-2.1.20.tgz
4.cd mailman-2.1.20

# Compile and install Mailman

01.groupadd mailman
02.useradd -c "GNU Mailman" -s /sbin/nologin -d /home/mailman -g mailman mailman
03.mkdir /usr/local/mailman
04.chgrp mailman /usr/local/mailman
05.chmod a+rx,g+ws /usr/local/mailman
06../configure --prefix=/usr/local/mailman --with-cgi-gid=zimbra
07.make
08.make install
09./usr/local/mailman/bin/check_perms -f
10.cd /usr/local/mailman/archives/
11.chown zimbra private
12.chmod o-x private
13./usr/local/mailman/bin/check_perms -f

# Modify httpd.conf on Zimbra

1.cp /opt/zimbra/conf/httpd.conf /opt/zimbra/conf/httpd.conf.back
2.vi /opt/zimbra/conf/httpd.conf

add these line in the bottom

01.ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
02.<Directory /usr/local/mailman/cgi-bin/>
03.AllowOverride None
04.Options ExecCGI
05.Order allow,deny
06.Allow from all
07.</Directory>
08. 
09.Alias /pipermail/ /usr/local/mailman/archives/public/
10.<Directory /usr/local/mailman/archives/public/>
11.Options Indexes MultiViews FollowSymLinks
12.AllowOverride None
13.Order allow,deny
14.Allow from all
15.# Only if you have internationalized archives
16.AddDefaultCharset Off
17.</Directory>
18. 
19.# Uncomment the following line, replacing www.example.com with your server's
20.# name, to redirect queries to /mailman to the listinfo page (recommended).
21.# RedirectMatch ^/mailman[/]*$ http://www.example.com/mailman/listinfo

Integrating Zimbra + Mailman

open mm_cfg.py file

1.vi /usr/local/mailman/Mailman/mm_cfg.py

adjust the configuration

MTA = 'Postfix'
POSTFIX_ALIAS_CMD = '/opt/zimbra/postfix/sbin/postalias'
POSTFIX_MAP_CMD = '/opt/zimbra/postfix/sbin/postmap'
IMAGE_LOGOS = '/mmimages/'
DEFAULT_URL_PATTERN = 'http://%s:7780/mailman/'
POSTFIX_STYLE_VIRTUAL_DOMAINS = [ 'imanudin.net' ]
DEFAULT_URL_HOST = 'mail.imanudin.net'
DEFAULT_EMAIL_HOST = 'imanudin.net'
VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

Perform the following command as root

1.cd /opt/zimbra/httpd/htdocs
2.mkdir mmimages
3.cp /usr/local/mailman/icons/* mmimages/
4.chown -R zimbra:zimbra mmimages/
5.su - zimbra -c "zmapachectl restart"
01.cd /usr/local/mailman
02.bin/newlist mailman adminmilist@imanudin.net
03.bin/mmsitepass -c list-creator-password
04.bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman
05.bin/genaliases
06.chown mailman:mailman /usr/local/mailman/data/aliases*
07.chown mailman:mailman /usr/local/mailman/data/virtual-mailman*
08.chmod 775 /usr/local/mailman/data/virtual-mailman.lmdb
09.chmod 775 /usr/local/mailman/data/aliases.lmdb

Note : Please adjust adminmilist@imanudin.net with email who action as admin. Please adjust also list-creator-password with properly password. This password will be used for create mailing list via web.

# Setup Mailman cron

1.cd /usr/local/mailman/cron
2.crontab -u mailman crontab.in

# Setup init daemon

1.cp /usr/local/mailman/scripts/mailman /etc/init.d/
2.chkconfig --add mailman
3.chkconfig mailman on
4.service mailman start

# Setup Virtual Alias

1.su - zimbra
2.zmprov ms mail.imanudin.net zimbraMtaVirtualAliasMaps 'ldap:/opt/zimbra/conf/ldap-vam.cf,lmdb:/usr/local/mailman/data/virtual-mailman'
3.zmprov ms mail.imanudin.net zimbraMtaAliasMaps 'lmdb:/etc/aliases,lmdb:/usr/local/mailman/data/aliases'
4.zmprov ms mail.imanudin.net zimbraMtaMyDestination 'localhost mail.imanudin.net'
5.zmcontrol restart
6.zmapachectl restart

# Test mailing list

Perform the following example as root

1.cd /usr/local/mailman
2.bin/newlist milist-test adminmilist@imanudin.net secret

or you can create mailing list via web browser http://IpZimbra:7780/mailman/create

Good luck and hopefully useful 😀

4 comments

  1. Hi iman,
    I installed zimbra 8.7 open source edition on CentOS 7- 64 bit.
    i wish to have mailman mailing list also running on another server ( CentOS 8.7 – 64 bit)
    my structure- Zimbra on one server and mailman on another server.

    will the above guide help me ?
    may i know Is it tested with zcs 8.7 also?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.