Upgrading from Kolab 3.4 to Kolab 16

The purpose of this guide is, to describe the procedure of upgrading a Kolab Goupware installation from a default installed Kolab 3.4 (last “community version”) to Kolab 16. The guide is not taking into consideration any customized configuration. neither is it considering installations of Kolab 3.4 on CentOS 6, which is not supported for Kolab 16.

Upgrading Kolab

Install the Kolab Groupware repository configuration:

# cd /etc/yum.repos.d/
# wget http://obs.kolabsys.com/repositories/Kolab:/16/CentOS_7/Kolab:16.repo

Remove the existing Kolab 3.4 repositories:

# rm Kolab\:3.4.repo
# rm Kolab\:3.4\:Updates.repo

Make sure that the packages from the Kolab repositories have a higher priority than e.g. the EPEL packages:

# for f in /etc/yum.repos.d/Kolab*.repo; do echo "priority = 60" >> $f; done

Replace php-mysql with php-mysqlnd:

# yum shell
> remove php-mysql
> install php-mysqlnd
> run
(Confirm as requested)
> exit

Update all:

# yum -y update


During the cleanup, you might see the message:

/var/tmp/rpm-tmp.TUmak9: line 1: fg: no job control
Cleanup : cyrus-imapd-2.5-108.3.el7.kolab_3.4.x86_64 347/404
/var/tmp/rpm-tmp.K51Mal: line 2: fg: no job control
warning: %postun(cyrus-imapd-2.5-108.3.el7.kolab_3.4.x86_64) scriptlet failed, exit status 1
Non-fatal POSTUN scriptlet failure in rpm package cyrus-imapd-2.5-108.3.el7.kolab_3.4.x86_64

This is a warning, and the Cyrus-imapd package will be updated. This can be checked after the update with the command:

# rpm -qv cyrus-imapd

Drop the policy_result table from MySQL.

Updating the Configuration

After upgrading the packages to Kolab 16 repository, the configuration needs to be updated.

Configure the new module “Guam”:

# setup-kolab guam


If the Kolab 3.4 installation was a standard installation with no changes to the defaults, then the following 2 commands can be run at no risk (The correct password for the current roundcube database user is still needed for verification).

However, if changes were made to the defaults, the original configuration should be copied off for later compare with the newly written configuration.

Update the roundcube configuration:

As setup-kolab is unable to write to the already existing mysql database, an error message will show:

ERROR 1007 (HY000) at line 1: Can’t create database ’roundcube’; database exists
ERROR 1050 (42S01) at line 8: Table ‘session’ already exists

The new and updated config file will however be written and the appropriate services be restarted.

The correct password for the current roundcube database user is still needed for verification.

# setup-kolab roundcube

Update the imap configuration:

# setup-kolab imap

Setting up an ActiveSync client

Kolab supports the use of the ActiveSync protocol for client connection. This knowledge base article is a short generic description of the setup procedure followed by a list of articles that describes how to do so on some well known clients.

Common for them all is the requirement of support for TLS 1.1 and later in the client / OS.

Continue reading

Archiving Email Using Always BCC

Organizations that require or desire archiving of their communications often use an external solution distinct from the Kolab environment. Such appliances often support SMTP-based forwarding, and for those cases, this article explains how to configure Postfix such that all email is archived.

Continue reading

Using Catch All Email Addresses

A catch-all email address is an address that is used as a fall-back for when no other recipients are available. Ergo, it is the email address that receives all email for a domain that isn’t already delivered to other users or groups or shared folders.

A default Kolab environment is not configured to facilitate catch-all addresses, so this article outlines why and how to configure such a catch-all email address in a way that allows the use of another relatively obscure but very powerful feature — the use of address extensions.

Continue reading

Relay Outbound Mail Through a Third Party, Using Postfix

John Doe administers a Kolab Enterprise installation, but the complete environment for what we’ll call “example.com” involves server systems hosted by third parties — such as a web server for the corporate website, and maybe other application servers.

This article outlines the possible solutions to one or more of these environments being restricted somehow.

Continue reading

Configure DKIM Signing and Verification Using Amavis

Domain Keys Identified Mail (DKIM, or Mail Identified through Domain Keys) is a cryptographic technology using which domain owners publish the public keys of public-private key pairs used for signing email messages. This allows third parties to establish a degree of confidence about the message originating from designated and duly authorized infrastructure. In other words, it’s a been there ribbon.

This article explains how to configure a Kolab environment to sign mail messages with DKIM and verify DKIM signatures on inbound email.

Continue reading