Установка и настройка zimbra на linux
Содержание:
Подготовка сервера
Независимо от выбранного дистрибутива Linux или редакции Zimbra выполняем следующие действия для подготовки сервера к корректной работы почтового сервера.
1. Настройка времени
Устанавливаем корректный часовой пояс:
timedatectl set-timezone Europe/Moscow
* в данном примере мы зададим московское время.
Теперь установим утилиту для синхронизации времени и запустим ее.
а) если используем систему на базе RPM (CentOS / Red Hat):
yum install chrony
systemctl enable chronyd —now
б) если используем систему на базе deb (Ubuntu):
apt-get install chrony
systemctl enable chrony —now
2. Безопасность
SELinux
Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* подробнее в статье Как отключить SELinux.
Брандмауэр
Для нормальной работы Zimbra нужно открыть много портов:
- 25 — основной порт для обмена почтой по протоколу SMTP.
- 80 — веб-интерфейс для чтения почты (http).
- 110 — POP3 для загрузки почты.
- 143 — IMAP для работы с почтовым ящиком с помощью клиента.
- 443 — SSL веб-интерфейс для чтения почты (https).
- 465 — безопасный SMTP для отправки почты с почтового клиента.
- 587 — SMTP для отправки почты с почтового клиента (submission).
- 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
- 995 — SSL POP3 для загрузки почты.
- 5222 — для подключения к Zimbra по протоколу XMPP.
- 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
- 7071 — для защищенного доступа к администраторской консоли.
- 8443 — SSL веб-интерфейс для чтения почты (https).
- 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
- 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
- 7110 — POP3 для загрузки почты.
- 7995 — SSL POP3 для загрузки почты.
- 9071 — для защищенного подключения к администраторской консоли.
В зависимости от утилиты управления фаерволом, команды будут следующие.
а) Если используем firewalld (Red Hat, CentOS):
firewall-cmd —permanent —add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp
firewall-cmd —reload
б) Если используем iptables (Ubuntu):
Порты для веб:
iptables -I INPUT -p tcp —match multiport —dports 80,443 -j ACCEPT
Порты для почты:
iptables -I INPUT -p tcp —match multiport —dports 25,110,143,465,587,993,995 -j ACCEPT
Порты для Zimbra:
iptables -I INPUT -p tcp —match multiport —dports 5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT
Сохраняем правила:
netfilter-persistent save
* если команда вернет ошибку, то установим пакет: apt-get install iptables-persistent.
в) Если используем ufw (Ubuntu):
ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995/tcp
3. DNS и имя сервера
Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о ).
Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:
hostnamectl set-hostname zimbra.dmosk.ru
Теперь открываем на редактирование файл:
vi /etc/hosts
… и добавляем:
192.168.1.15 zimbra.dmosk.ru zimbra
* где 192.168.1.15 — IP-адрес нашего сервера; zimbra — имя сервера; dmosk.ru — наш домен.
Не совсем очевидная проблема, но если в системе не будет пакета hostname, при попытке запустить установку зимбры, мы будем получать ошибку определения IP-адреса по имени. Устанавливаем пакет.
а) для CentOS (Red Hat):
yum install hostname
б) если Ubuntu (Debian):
apt-get install hostname
4. Системная переменная для имени сервера
Чтобы нам было удобнее вводить команды, где требуется указать имя сервера, создадим системную переменную:
myhostname=zimbra.dmosk.ru
Теперь мы можем в команде использовать переменную $myhostname.
Чат и видеозвонки
Возможности чата не слишком большие, но тем не менее, есть крутая штука, которая мало у кого реализована. Я имею ввиду не популярные мессенджеры, а закрытые чаты, которые можно развернуть на своем сервере. Есть индикация того, прочитано ли твое сообщение. Реализовано так же, как во всех популярных мессенджерах в виде галочки. Одна галочка — сообщение доставлено, но не прочитано. Две галочки — прочитано.
Тут же из разговора можно осуществить звонок, в том числе с видео. Я смог протестировать этот режим в формате видеозвонка даже с одного своего ноутбука позвонив самому себе в разные учетки, открытые в двух браузерах.
Входящий звонок в почтовом клиенте выглядит так.
При этом пиликает звук из динамиков компьютера. Поговорить самому с собой через один микрофон у меня получилось. Так выглядит интерфейс видеозвонка.
Тут же можно расшарить свой экран, но для этого надо установить отдельное расширение для Chrome.
Вообще, до этого момента я немного прохладно относился ко всей этой затее с Zimbra и Zextras. Вроде и функционально, но не везде удобно, да и денег стоит. Но когда увидел этот чат с видео, с демонстрацией экрана, который у меня сразу и без проблем заработал, я проникся. Ведь это реально очень удобно. Сидишь, работаешь, получил почту. Что-то не понял, тут же написал в чат, договорился о звонке. Созвонились, поговорили, показали друг другу экраны, все объяснили. Это реально круто и удобно.
Плюс, можно создавать отдельные комнаты и проводить конференции. Ведущий запускает у себя камеру, шарит экран и начинает объяснять или что-то рассказывать. Остальные либо просто слушают, либо с включенными веб камерами сидят. И при этом не нужен никакой дополнительный софт. Все работает через браузер. И ты можешь сюда запускать людей со стороны, просто давая им ссылки на чат комнаты.
Возможные проблемы
Рассмотрим некоторые проблемы, с которыми мы можем столкнуться при работе с Zimbra.
Служба zmconfigd не стартует
В консоли управления почтовым сервером мы можем увидеть ошибку запуска службы zmconfigd. При попытке запустить ее:
$ zmconfigdctl start
… мы получаем ошибку:
Starting zmconfigd…failed
Решение:
Устанавливаем пакет с nc-командами.
а) если на систему RPM (Red Hat / CentOS):
yum -y install nmap-ncat
б) если на систему deb (Debian / Ubuntu):
apt-get install netcat-openbsd
После пробуем запустить сервис (от пользователя zimbra):
$ zmconfigdctl start
Ошибка при просмотре очередей в веб-консоли
При переходе на страницу просмотра очередей система отображает ошибку:
system failure: exception occurred searching mail queue
Код ошибки: service.FAILURE Method: Детали:soap:Receiver
Решение:
Есть два варианта решения проблемы.
1. Если для подключения к нашему серверу по SSH используется нестандартный порт (не 22), необходимо ввести команду:
su — zimbra -c «zmprov mcf zimbraRemoteManagementPort 2222»
* где 2222 — порт SSH, который используется для нашего сервера.
2. Переходим в каталог:
cd /opt/zimbra/data/tmp
Находим каталог <цифры>-active и удаляем его.
Ограничение размера ящика и письма
Zimbra в качестве MTA использует Postfix, где эти ограничения задаются переменными:
# устанавливаем ограничение на ящик в 100Мб и на письмо в 10Мб mailbox_size_limit = 102400000 message_size_limit = 10240000
Конфигурационный файл /opt/zimbra/postfix/conf/main.cf генерируется при каждом запуске зимбры, поэтому исправлять его нет смысла. Редактируем файл /opt/zimbra/conf/zmmta.cf, но так как он доступен только для чтения, то сначала придётся сменить права:
$ chmod u+w ./zmmta.cf
Находим вышеуказанные переменные, присваиваем нужные значения, перезагружаем зимбру:
$ zmcontrol restart
Что такое Zextras
Продукт Zextras состоит из двух компонентов — Zextras Suite и Team Pro. Рассмотрим функционал каждого из них. Начнем с Zextras Suite и его основных возможностей (не всех):
- Одноканальный (1:1) мессенджер с поддержкой аудио и видео звонков.
- Создание и редактирование документов, таблиц, презентаций в интегрированной LibreOffice с поддержкой форматов документов Microsoft Office, кроме бизнес аналитики, OLAP.
- Совместная работа с документами через web интерфейс. В том числе преобразование в pdf в один клик.
- Индивидуальный виртуальный диск Drive для хранения документов с возможностью делиться файлами.
- Поддержка различных Storage для хранения информации, в том числе объектные, типа S3 с приоритезацией хранения данных на хранилищах разных типов.
- Расширенная возможность бэкапа (компрессия, дедупликация) и восстановления данных, в том числе удаленных писем и т.д. Все это связано с поддержкой различных Storage из предыдущего пункта.
- Поддержка мобильных устройств, в том числе с помощью Active Sync. Есть мобильные приложения для iOS и Android.
- Поддержка клиента Microsoft Outlook с помощью того же Active Sync.
- Расширенные возможности администрирования. Делегирование нескольким администраторам ограниченных прав, логирование их действий и т.д.
Продукт Team Pro дает дополнительные возможности к перечисленным выше:
- Многоканальные видеозвонки для организации видеоконференций.
- Возможность общения с внешними пользователями, не зарегистрированными в системе.
- Демонстрация своего экрана для одного или нескольких зрителей, возможность делиться файлами.
Все перечисленные возможности интегрированы в стандартный интерфейс Zimbra и управляются через него. Расширения Zextras являются надстройкой, не изменяя код самого почтового сервера. Их можно без проблем удалить. Аудио и видеочаты реализованы на базе WebRTC, поэтому работают через браузер и не требуют установки дополнительного ПО.
Zextras полностью платный продукт. Open source версии нет. Можно воспользоваться 30-ти дневным триалом для тестирования функционала. Стоимость различных лицензий можно узнать у официального партнера Zextras в РФ — SVZcloud.
С теорией и описанием закончили. Переходим к установке и настройке. Начнем с установки Zimbra.
Overview
Command Format
The format of a Zimbra REST command is:
{protocol}://{host}:{port}/home/{user}/{object}?{params}
HTTP methods are for reading items. HTTP methods are for creating/modifying items. The following describes the components of the Zimbra REST command:
Component | Description |
The transport protocol, for example, . | |
The host name or IP address of the Zimbra Collaboration Suite server | |
The port number, for example, 7070. | |
The user. To load an explicit user account, specify the user in one of the following formats:
http://localhost:7070/home/john.doe@mydomain.com/inbox.rss You can also use «~» as a shortcut to the current authenticated user. For example: http://localhost:7070/home/~/inbox.rss |
|
Designates the object to perform the command against. This might be a folder (such as inbox or drafts) or omitted (to download a specific item). If omitted, the query parameters provide the information the command requires.
For example, to download the inbox folder as XML: http://localhost:7070/home/john.doe/inbox.rss For example, to download an item: http://localhost:7070/home/john.doe/?id=657 |
|
A list of command-specific URL parameters. See the specific command for a list of the required and optional parameters. |
Response Formats
The following describes the various response formats, designated using the parameter. Not all commands support all formats. See the specific command for a list of supported formats and command-specific details:
Format | Description |
Hyper Text Markup Language file format. Produced the output as a web page. | |
Data compression and archive format. | |
Data archive format («tar»). | |
Compressed file. | |
Common Separated Values file format. A specific CSV format can be designated using the parameter. Supported CSV formats include:
|
|
Requests that the server return additional meta-data in the response headers. When using this option, the headers are returned inline of the response, unless you specify .
For example, get a mail message by item id and return the meta-data in the response headers and inline. http://localhost:7070/home/john.doe/?id=288&fmt=sync For example, get a mail message by item id and return the meta-data in the response headers only. http://localhost:7070/home/john.doe/?id=288&fmt=sync&nohdr=1 The following is a list of the meta-data headers:
|
Authentication
There are multiple methods to authenticate as a user when accessing a mailbox. Using the parameter, you can designate how to authenticate and whether or not to set the authentication cookie.
Default is . Meaning: first, check for a cookie auth token; second, check for query parameter auth token; thrid, prompt for basic authentication.
The parameter supports a list of comma-separated values which include:
Value | Description |
The authentication token will be retrieved from the cookie.
For example: http://localhost:7070/home/john.doe/inbox.rss?auth=co |
|
The authentication token will be retrieved from request parameter .
For example: http://localhost:7070/home/john.doe/inbox.rss?auth=qp&zauthtoken=0_thisismyzauthtokenthisismyzauthtoken_thisismyzauthtoken |
|
These methods refer to Basic Authentication:
For example: http://localhost:7070/home/john.doe/inbox.rss?auth=ba |
Что такое Zimbra
Для начала расскажу, из чего состоит Zimbra. Это известные open source продукты.
- Почтовый сервер — Postfix.
- Сервер баз данных — MariaDB.
- Ldap сервер — OpenLDAP.
- Сервер приложений — Jetty.
- Web сервер apache и nginx в качестве прокси к нему.
- Поисковой движок — Lucene.
- Антивирус и антиспам — ClamAV и SpamAssassin и Amavisd в виде интерфейса для взаимодействия этих инструментов с MTA.
- Предпросмотр документов на базе LibreOffice.
В общих чертах появляется понимание о том, что из себя представляет Zimbra. Открытый вопрос с imap сервером. Ожидаешь увидеть здесь dovecot, но на самом деле у зимбры свой imap сервер. Все перечисленные компоненты связаны через web приложения, написанные на Java, в том числе интерфейс пользователя. Это накладывает свои особенности в эксплуатации, которые характерны для всех java приложений. Ожидать небольшого потребления системных ресурсов не приходится.
Системные требования
Минимальные системные требования для Zimbra следующие:
Система | Centos 7 и прочие клоны RHEL либо Ubuntu 16 |
Процессор | Intel/AMD 2.0 GHZ+ 64-bit, 2-4 CPU |
Память | 8 Gb Ram |
Диск | 5 GB для компонентов сиcтемы + место под почту |
Я в своем примере буду использовать операционную систему Centos 7.
Функционал
Рассмотрим теперь, какой функционал предоставляет бесплатная версия Zimbra из коробки.
- Непосредственно почтовый сервер с web интерфейсом. Доступен следующий функционал — почта, задачи, календарь, адресная книга, автоответы, алиасы и др.
- Простой чат через web клиент.
- Хороший функциональный поиск по почтовой базе.
- Шифрование почтовых сообщений.
- Предпросмотр документов в web интерфейсе.
- Антиспам и антивирус.
- Web консоль управления сервером для администратора.
- Приложение для компьютера Zimbra Desktop. К сожалению, больше не поддерживается.
В целом, ничего особенного. Весь этот функционал можно настроить так или иначе самостоятельно. Но это под силу не только лишь всем 🙂 Объем работы будет очень большой. Нужно хорошее знание linux и понимание устройства и работы почтовых серверов.
Zimbra хороша тем, что дает готовое, единое, комплексное решение, которое ставится практически автоматически и не требует больших знаний linux для развертывания и управления. После установки доступен web интерфейс, через который все управляется. Лазить в консоль сервера практически не нужно. Только если траблшутить какие-то проблемы. Если у вас хороший бэкграунд на тему почтового сервера на базе postfix, но вам просто надоело все настраивать руками, то проблем быть не должно. Если его нет, то как повезет. Но в целом, продукт стабилен и надежен. При типовом использовании проблем быть не должно.
Zimbra Collaboration
Zimbra release notes are specific to each version of the server. Select your version from the list below to see the release notes for it.
Release | Codename | Patch Level | Third-Party Patch Level | General Availability | Download the Release Notes |
---|---|---|---|---|---|
9.0.0 GA Release | Kepler | Patch 17 | No released patches | 04/07/2020 | |
8.8.15 GA Release (LTS Release) | Joule | Patch 24 | No released patches | 07/22/2019 | |
8.8.12 GA Release | Isaac-Newton | Patch 6 | No released patches | End of General Support 12/31/2019 04/01/2019 | |
8.8.11 GA Release | Homi-Bhabha | Patch 5 | No released patches | End of Technical Guidance 12/17/2019 12/17/2018 | |
8.8.10 GA Release | Konrad-Zuse | Patch 8 | No released patches | End of Technical Guidance 10/01/2019 10/03/2018 | |
8.8.9 GA Release | Curie | Patch 10 | No released patches | End of Technical Guidance 07/09/2019 07/10/2018 | |
8.8.8 GA Release | Turing | Patch 10 | No released patches | End of Technical Guidance 03/29/2019 04/02/2018 | |
8.8.7 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 03/08/2018 | |
8.8.6 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 01/15/2018 | |
8.8 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 03/29/2019 12/12/2017 | |
8.7.11 GA Release | JudasPriest | Patch 14 | No released patches | End of General Support 12/31/2019 06/08/2017 | |
8.7.10 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 05/31/2017 | |
8.7.9 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 05/11/2017 | |
8.7.8 Early Developer Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 04/27/2017 | |
8.7.7 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 04/13/2017 | |
8.7.6 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/30/2017 | |
8.7.5 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/16/2017 | |
8.7.4 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 03/02/2017 | |
8.7.3 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 02/17/2017 | |
8.7.2 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 02/02/2017 | |
8.7.1 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 10/27/2016 | |
8.7.0 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2019 07/13/2016 | |
8.6.0 GA Release | JudasPriest | Patch 14 | No released patches | End of Technical Guidance 9/30/2019 12/15/2014 | |
8.5.1 GA Release | JudasPriest | No released patches | No released patches | End of Technical Guidance 9/30/2018 11/03/2014 | |
8.5.0 GA Release | JudasPriest | Patch 2 | No released patches | End of Technical Guidance 9/30/2018 08/28/2014 | |
8.0.9 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 11/03/2014 | |
8.0.8 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 09/25/2014 | |
8.0.7 GA Release | IronMaiden | Patch 2 | End of Technical Guidance 9/10/2017 04/08/2014 | ||
8.0.6 GA Release | IronMaiden | No released patches | End of Technical Guidance 9/10/2017 12/03/2013 | ||
8.0.5 GA Release | IronMaiden | Patch 1 | End of Technical Guidance 9/10/2017 09/10/2013 | ||
8.0.4 GA Release | IronMaiden | Patch 2 | End of Technical Guidance 9/10/2017 05/24/2013 | ||
8.0.3 GA Release | IronMaiden | Patch 3 | End of Technical Guidance 9/10/2017 03/05/2013 | ||
8.0.2 GA Release | IronMaiden | Patch 1 | No released patches | End of Technical Guidance 9/10/2017 12/10/2012 | |
8.0.1 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 11/05/2012 | |
8.0.0 GA Release | IronMaiden | No released patches | No released patches | End of Technical Guidance 9/10/2017 09/07/2012 | |
7.2.7 GA Release | Helix | No released patches | No released patches | End of Technical Guidance 3/31/2015 03/14/2014 |
Try Zimbra
Want to get involved?
Other help Resources
Looking for a Video?
Перенос учётных записей
Перенесём (импортируем) учётные записи из предыдущей почтовой системы. У меня использовался Postfix под управлением PostfixAdmin.
Для такого случая есть специальный скрипт.
#!/usr/bin/php // Postfixadmin (http://postfixadmin.sourceforge.net/) to Zimbra // (www.zimbra.com) migration script // // History: // Based on work from: Jaros Baw Czarniak // Enhanced by NERvOus (www.nervous.it) on 1-12-2009 <?php ///////////////////////////////////////////////////////// $user="postfix"; $pass="postfixadmin"; $db="postfix"; $table_mbox="mailbox"; $table_alias="alias"; $file="import.sh"; ///////////////////////////////////////////////////////// echo "This script generates a bash script called: $file The script contains the commands to re-create the mboxes and aliases on zimbra server.\n\n "; $mydb = mysql_connect('localhost',$user, $pass) or die ('Error connecting to server'); mysql_select_db($db); mysql_query("SET CHARACTER SET utf8"); mysql_query("SET NAMES utf8"); $query = "SELECT username,password,name,maildir,quota,domain FROM $table_mbox"; $dane = mysql_query($query) or die ('Error during query for '.mysql_error()); echo "Writing to $file ...\n"; $fh = fopen($file, "w"); fwrite($fh, "#!/bin/sh -x\n\n"); while ($row = mysql_fetch_array($dane, MYSQL_NUM)) { $data_mbox = "zmprov ca ".$row." dsfs123hsdyfgbsdgfbsd displayName '".$row."'\n"; $data_mbox .= "zmprov ma ".$row." userPassword '{crypt}".$row."'"."\n"; fwrite($fh, $data_mbox); } // skip domain aliases, aliases that forward to themselves and aliases // for which a mbox exists $query = "SELECT address, trim(trailing ',' from goto) AS dest FROM ".$table_alias." WHERE address NOT LIKE '@%' AND address NOT IN (SELECT username FROM $table_mbox) HAVING address != dest"; $dane = mysql_query($query) or die ('Error during query for '.mysql_error()); while ($row = mysql_fetch_array($dane, MYSQL_NUM)) { // multiple dests unset($rawdest_r); unset($dest_r); $rawdest_r = preg_split('/,/', $row); foreach ($rawdest_r as $dest) { if ($dest != $row) { // don't forward to itself $dest_r[] = $dest; } } if (count($dest_r) > 1) { // distribution list $data_list .= "zmprov cdl $row\n"; foreach ($dest_r as $dest) { $data_list .= "zmprov adlm $row $dest\n"; } } if (count($dest_r) == 1) { preg_match('/@(.*)$/', $row, $matches); $acct_domain = $matches; preg_match('/@(.*)$/', $dest_r, $matches); $alias_domain = $matches; if ($acct_domain == $alias_domain) { // we are adding an alias, not a forward // try to create alias both for a normal // account and for a distribution list. One of the // commands will fail, pity. $data_alias .= "zmprov aaa $dest_r $row\n"; $data_alias .= "zmprov adla $dest_r $row\n"; } else { // we are adding a forward $data_alias .= "zmprov ca $row " . rand_str(11) . "\n"; $data_alias .= "zmprov ma $row zimbraprefmailforwardingaddress $dest_r\n"; } } } // first create all distribution lists, last all aliases // We cannot create aliases for distribution lists that do not // exist yet fwrite($fh, $data_list . $data_alias); fclose($fh); echo "Done. Now copy $file to zimbra server and run: # su - zimbra $ sh ./$file "; function rand_str($length = 32, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890') { // Length of character list $chars_length = (strlen($chars) - 1); // Start our string $string = $chars{rand(0, $chars_length)}; // Generate random string for ($i = 1; $i < $length; $i = strlen($string)) { // Grab a random character from our list $r = $chars{rand(0, $chars_length)}; // Make sure the same two characters don't appear next to each // other if ($r != $string{$i - 1}) $string .= $r; } // Return the string return $string; }
Полученный с помощью этого скрипта файл import.sh выполняем на сервере Zimbra.
Заключение
Инструментов Zimbra и Zextras достаточно, чтобы организовать коллективную работу с почтой и документами практически в любой организации. Продукт нормально масштабируется, так что подойдет как для среднего, так и для большого бизнеса. Примеры реализации для государственных учреждений и сервис-провайдеров можете посмотреть по ссылкам.
Мне довелось пообщаться с одним администратором, который работал в банке и занимался только тем, что управлял кластером Zimbra, который обеспечивал почтой работу всего банка. Банк не сильно большой и известный, тем не менее я все равно был удивлен увидеть этот продукт там.
Возможность гибко управлять пользователями, делегировать полномочия администраторов являются приятной особенностью описанного решения. Не так много продуктов могут этим похвастаться. С точки зрения управления системой реализовано все не плохо. Не скажу, что удобно, но тем не менее, функционал есть и можно настраивать. В комплекте хорошие бэкапы и работа с томами. Особенно это будет актуально для больших почтовых архивов в облачной инфраструктуре, когда старую почту можно будет выгрузить на дешевые s3 хранилища.
Если у вас есть реальный опыт использования Zimbra или Zextras прошу поделиться информацией. Так же было бы любопытно узнать, кто что использует в организациях для совместной работы. Первое, что приходит на ум, это продукты Microsoft, но они дорогие. Полностью Open Source решения костыльные и неудобные. Все потребности не закрывают. Приходится искать компромиссы.