Bobcares

Zimbra- Your Open Source Mail Server

by | Apr 25, 2008

Are you in the lookout for a good open source mail server?

Well, then your first stop would be Zimbra.

Zimbra provides open-source server and client software for numerous applications like messaging and collaboration: email, group calendaring, contacts, and web document management and authoring.

 

Hire Bobcares Linux Server Administrators
Get super reliable servers and delighted customers

See how we do it!

 

 

Table of Contents

  • 1. Introduction
  • 2. Zimbra requirements:
    • 2.1. Production & Testing environment
    • 2.2. Requirements – Which I used in my test machine
    • 2.3. Pre-requisite
  • 3. Installation and configuration of Zimbra
    • 3.1. Installation
  • 4. Zimbra main Configuration Setting
    • 4.1. Configuration files
  • 5. Zimbra MTA – How it works
  • 6. Zimbra Admin and Client Interface
  • 7. Other features
    • 7.1. How to Deploy Zimlet in Zimbra
  • 8. Conclusion

1. Introduction:

Are you in the lookout for a good open source mail server?

Well, then your first stop would be Zimbra.

Zimbra provides open-source server and client software for numerous applications like messaging and collaboration: email, group calendaring, contacts, and web document management and authoring.

The Zimbra server has been made available for various platforms like Linux, Mac OS X, appliances, and virtualization platforms. The Zimbra Web 2.0 Ajax client runs on most commonly used browsers like Firefox, Safari, and IE. It also features easy integration/mash-ups of web portals, business applications, and VoIP using web services.

When it comes to comparison between Zimbra and Microsoft Exchange, Zimbra is in par with Exchange in many ways. It is in fact ahead of Exchange for hosting providers and in collaboration features. One of the notable difference between Zimbra and Exchange is that Zimbra provides SOAP bindings which allows third parties to integrate additional functionality with Zimbra.

2. Zimbra requirements:

2.1 Production & Testing environment

Evaluation and Testing

  • Intel/AMD 32-bit or 64-bit CPU 1.5 GHz
  • 1 GB RAM
  • 5 GB free disk space for software and logs
  • Temp file space for installs and upgrades
  • Additional disk space for mail storage

Production environments

  • Intel/AMD CPU 32-bit 2.0 GHZ+.
  • For large deployments (more than 2000 users), 64-bit OS is recommended.
  • Minimum – 2 GB RAM (Recommend – 4 GB).
  • Temp file space for installs and upgrades.
  • 10 GB free disk space for software and logs (SATA or SCSI for performance, and RAID/Mirroring for redundancy).
  • Additional disk space for mail storage.

Firewall Configuration should be set to : No firewall, and the Security Enhanced Linux (SELinux) should be disabled. You can find detailed requirements in http://www.zimbra.com/docs/os/latest/single_server_install/System%20Requirements.2.1.html

2.2 Requirements – Which I used in my test machine

  • Operating system : Linux – Centos 5
  • /opt partition with 6 GB space
  • 1GB RAM (Zimbra requires atleast 500MB)
  • Genuine Intel(R) CPU 2140 @ 1.60GHz

2.3 Pre-requisite

  • First of all you need to make sure that Hostname is setup.
  • Setup MX record for the hostname.

3. Installation and configuration of Zimbra

3.1 Installation of Zimbra

  1. Download Zimbra and extract the archive (CentOS5 uses the Red Hat Enterprise Linux 5 binary). You can download it from http://zimbra.com/community/downloads.html. I used zcs-5.0.2_GA_1975.RHEL5.20080130221917.tgz
  2. Install fetchmail using “yum install fetchmail”
  3. Make sure to set SELinux to permissive or disabled (edit /etc/selinux/config and set SELINUX=permissive)
  4. Restart the server to ensure SELinux change took effect
  5. Run install.sh in zcs folder. Here the folder is zcs-5.0.2.
  6. This will prompt for so many questions, you need to enter proper information. These answers will be used for the configuration of Zimbra. After the completion of the questions and configuration, it will show the following information: (Here I have used the MX entry as “zimbra.zimbrainst.com”.)
      • Status: Enabled

     

      • Create Admin User: yes

     

      • Admin user to create: admin@zimbra.zimbrainst.com

     

      • Admin Password set

     

      • Enable automated spam training: yes

     

      • Spam training user: spam.n2xvfp2a@zimbra.zimbrainst.com

     

      • Non-spam(Ham) training user: ham.htr37bbj@zimbra.zimbrainst.com

     

      • Global Documents Account: wiki@zimbra.zimbrainst.com

     

      • SMTP host: zimbra.zimbrainst.com

     

      • Web server HTTP port: 80

     

      • Web server HTTPS port: 443

     

      • Web server mode: http

     

      • IMAP server port: 143

     

      • IMAP server SSL port: 993

     

      • POP server port: 110

     

      • POP server SSL port: 995

     

      • Use spell check server: yes

     

      • Spell server URL: http://zimbra.zimbrainst.com:7780/aspell.php

     

  7. If you want, you can modify the ports of http and https (to 8080 and 8443). In that case you can follow the instructions in window to modify the value. This will expand the information like:
      1. Common Configuration:

     

      1. zimbra-ldap: Enabled

     

      1. zimbra-store: Enabled
          • Create Admin User: yes

         

          • Admin user to create: admin@zimbra.zimbrainst.com

         

          • Admin Password ljy7tKJQ

         

          • Enable automated spam training: yes

         

          • Spam training user: spam.n2xvfp2a@zimbra.zimbrainst.com

         

          • Non-spam(Ham) training user: ham.htr37bbj@zimbra.zimbrainst.com

         

          • Global Documents Account: wiki@zimbra.zimbrainst.com

         

          • SMTP host: zimbra.zimbrainst.com

         

          • Web server HTTP port: 80

         

          • Web server HTTPS port: 443

         

          • Web server mode: http

         

          • IMAP server port: 143

         

          • IMAP server SSL port: 993

         

          • POP server port: 110

         

          • POP server SSL port: 995

         

          • Use spell check server: yes

         

          • Spell server URL: http://zimbra.zimbrainst.com:7780/aspell.php

         

         

     

      1. zimbra-mta: Enabled

     

      1. zimbra-snmp: Enabled

     

      1. zimbra-logger: Enabled

     

      1. zimbra-spell: Enabled

     

  8. Default Class of Service Configuration:
      • Start servers after configuration yes

     

      • Save config to file

     

      • Expand menu

     

      • Quit

     

I kept the ports as 80 and 443 for http and https respectively.
There is an option to keep the configuration details in one config file. If you enable it, you can view the entire configuration.
Here my Zimbra configuration file is /opt/zimbra/config.12272.
After the completion of Zimbra Installation, it will show the following message:

The VERSION of zcs installed (5.0.2_GA_1975_CentOS5)
The ADMIN EMAIL ADDRESS created (admin@zimbra.zimbrainst.com)

Notify Zimbra of your installation? [Yes]
Notifying Zimbra of installation via
http://www.zimbra.com/cgi-bin/notify.cgi?VER=5.0.2_GA_1975_CentOS5&MAIL=admin@zimbra.zimbrainst.com

Notification complete

Starting servers...done.
Checking for deprecated zimlets...done.
Installing zimlets...
com_zimbra_cert_manager
com_zimbra_email
com_zimbra_date
com_zimbra_phone
com_zimbra_search
com_zimbra_url
com_zimbra_local
done.
Initializing Documents...done.
Restarting mailboxd...done.

Moving /tmp/zmsetup.03202008-111811.log to /opt/zimbra/log

4. Zimbra main Configuration Setting:

The configuration details of Zimbra during the installation can be viewed in /opt/zimbra/config.12272 (Here config.12272 is my config file)

Sample config file: (/opt/zimbra/config.12272)

AVUSER=admin@zimbra.zimbrainst.com
CREATEADMIN=admin@zimbra.zimbrainst.com
CREATEDOMAIN=zimbra.zimbrainst.com
DOCREATEADMIN=yes
DOCREATEDOMAIN=yes
DOTRAINSA=yes
EXPANDMENU=no
HOSTNAME=zimbra.zimbrainst.com
HTTPPORT=80
HTTPSPORT=443
IMAPPORT=143
IMAPPROXYPORT=7143
IMAPSSLPORT=993
IMAPSSLPROXYPORT=7993
JAVAHOME=/opt/zimbra/java
LDAPHOST=zimbra.zimbrainst.com
LDAPPORT=389
MAILBOXDMEMORYPERCENT=40
MODE=http
MTAAUTHHOST=zimbra.zimbrainst.com
MYSQLMEMORYPERCENT=30
NOTEBOOKACCOUNT=wiki@zimbra.zimbrainst.com
POPPORT=110
POPPROXYPORT=7110
POPSSLPORT=995
POPSSLPROXYPORT=7995
REMOVE=no
RUNARCHIVING=no
RUNAV=yes
RUNSA=yes
SMTPDEST=admin@zimbra.zimbrainst.com
SMTPHOST=zimbra.zimbrainst.com
SMTPNOTIFY=yes
SMTPSOURCE=admin@zimbra.zimbrainst.com
SNMPNOTIFY=yes
SNMPTRAPHOST=zimbra.zimbrainst.com
SPELLURL=http://zimbra.zimbrainst.com:7780/aspell.php
STARTSERVERS=yes
SYSTEMMEMORY=1.0
TRAINSAHAM=ham.htr37bbj@zimbra.zimbrainst.com
TRAINSASPAM=spam.n2xvfp2a@zimbra.zimbrainst.com
UPGRADE=yes
USESPELL=yes
ldap_dit_base_dn_config=cn=zimbra
mailboxd_directory=/opt/zimbra/mailboxd
mailboxd_keystore=/opt/zimbra/mailboxd/etc/keystore
mailboxd_keystore_password=Chaaxxgme
mailboxd_server=jetty
mailboxd_truststore=/opt/zimbra/java/jre/lib/security/cacerts
mailboxd_truststore_password=changeit
zimbraClusterType=none
zimbraFeatureBriefcasesEnabled=Enabled
zimbraFeatureIMEnabled=Disabled
zimbraFeatureNotebookEnabled=Enabled
zimbraFeatureTasksEnabled=Enabled
zimbraMtaMyNetworks=127.0.0.0/8 192.168.1.0/24
zimbraPrefTimeZoneId=(GMT-08.00) Pacific Time (US & Canada)
zimbra_ldap_userdn=uid=zimbra,cn=admins,cn=zimbra
INSTALL_PACKAGES="zimbra-apache zimbra-core zimbra-ldap
zimbra-logger zimbra-mta zimbra-snmp zimbra-spell zimbra-store "

4.1. Configuration files of Zimbra:

Main Apache Configuration entry – /opt/zimbra/conf/httpd.conf
Zimbra configuration password entries – /opt/zimbra/conf/localconfig.xml

Zimbra’s configuration files are mainly located in the folder /opt/zimbra/conf/. All the postfix related things are located in /opt/zimbra/postfix.
You can see several configuration files such as amavisd.conf, httpd.conf, clamd.conf, freshclam.conf, dspam.conf, my.cnf, php.ini, postfix related configurations in it.

5. Zimbra MTA – How it works:

The following pictures will give you better idea about Zimbra MTA (Mail Transfer Agent) working. In order to reduce the article length I am avoiding this section.

6. Zimbra Admin and Client Area:

Zimbra Admin and Client area can be accessed using the following URLs https://HOSTNAME:7071 and https://HOSTNAME (if it is port 80).
Here Zimbra Admin login is:
https://zimbra.zimbrainst.com:7071
username : admin@zimbra.zimbrainst.com (corresponding value of CREATEADMIN)

Client area (or webmail) can be accessed using https://HOSTNAME (Here it is https://zimbra.zimbrainst.com). I have used the default port 80 during the setup. You can create the login details using Zimbra-admin area.

The CREATEADMIN (here it is admin@zimbra.zimbrainst.com) will also have login to Client area (https://zimbra.zimbrainst.com).

Spell Checker can be accessed directly using https://HOSTNAME:7780/aspell.php (Here it is http://zimbra.zimbrainst.com:7780/aspell.php).

7. Other features

  • Zimlets – Integrating the Zimbra Collaboration Suite (ZCS) with third party information systems and content as well as creating “mash-up” user interfaces within the Zimbra suite itself.
  • Chat/IM – Beta version
  • Document Workflow
  • Shared Folders/GroupWare

7.1 How to Deploy Zimlet in Zimbra

The Zimbra mail server binaries are located in the location /opt/zimbra/bin. The binary /opt/zimbra/bin/zmzimletctl will help you in implementing or deploying new zimlet.

Try the following option to list the deployed Zimlet: /opt/zimbra/bin/zmzimletctl listZimlets

The deployed zimlets are usually located in the section /opt/zimbra/jetty-6.1.5/webapps/service/zimlet/. It will be like com_zimbra_email.

The extra zimlets are located in /opt/zimbra/zimlets-extra/ and /opt/zimbra/zimlets-admin-extra/.

The /opt/zimbra/zimlets-admin-extra/ is mainly used to deploy the functions in Admin – interface and other one (/opt/zimbra/zimlets-extra/) is for Client (webmail) part.

If you want to deploy the Amazone – Zimlet, do the following:

cd /opt/zimbra/zimlets-extra/
/opt/zimbra/bin/zmzimletctl deploy com_zimbra_amzn.zip
/opt/zimbra/bin/zmzimletctl listZimlets

You can also deploy the same using Zimbra-Admin interface.

8 Conclusion

All in all, Zimbra has a pleasant GUI coupled with an excellent MTA design with Postfix. And moreover and most importantly, it is providing an OpenSource edition.

The future seems to be promising for Zimbra 🙂

Reference

1. http://wiki.zimbra.com/index.php?title=Zimbra_MTA


Articles By Joseph Symon

About the author: Joseph Symon has been working in Bobcares for more than 2 years. He has marked his presence in the company by his contributions towards enriching the knowledge level in the company. He is a linux expert, especially in installing and configuring systems and customizing them for specific needs. He is also passionate about learning new techologies.


8 Comments

  1. hiren patel

    Thanks for the blog if possible can the site owner put some live configuration videos of zimbra mail server configuration and trouble shoots .

    best regards

    HirenPatel

  2. Mohammed Niyaz

    Apt guide & a complete end to end blog for configuring zimbra mail server. Thanks a ton for this info provided on your blog.
    Niyaz

  3. Naveed Khan

    Thats great but can u put more detail about configurations
    Naveed Khan

  4. Install Software

    Another great post.
    Thanks for the tips and help.
    Everyone, bookmark this site.

  5. Vivek Nayee

    Thankyou soo much for the information. I mean it truely, and very well apreciated work for the documentation part. A true sign of following the open source and spreading the knowledge. Thanks again.

  6. Keshav Reddy

    Thanks DUDE. Really helpful.

Never again lose customers to poor
server speed! Let us help you.