Добавляем поддержку протокола Microsoft ActiveSync к почтовому серверу на основе Zimbra

Материал из База знаний Linux.ру

Перейти к: навигация, поиск

Есть такой интересный проект, называется Z-Push он позволяет организовать работы с различными почтовыми серверами на основе протокола ActiveSync. А иначе, позволяет маскироваться различным почтовым серверам под Microsoft Exchange. Это часто бывает удобно, чтобы настроить к примеру синхронизацию почты, контактов и ежедневника в мобильных устройствах, к примеру на Android и iOS (iPhone или iPad). В результате вы можете работать с почтой не ставя никаких дополнительных почтовых программ, а просто используя встроенные средства указанных ОС.

В своей работе я почту держу на Zimbra. Поэтому расскажу, каким образом настроить взаимодействие Zimbra и Z-Push.


Итак. Что нам нужно для этого:

1. Естественно, что нам нужен сервер, на котором работает Zimbra

2. Сервер Apache. Можно использовать как сервер, который идет в составе пакета Zimbra, можно использовать и совершенно сторонний сервер. Желательно, правда, чтобы скорость канала от этого Apache сервера до Zimbra сервера была как можно больше.

3. Собственно Z-Push

4. Zimbra Backend - интерфейс, благодаря которому Z-Push будет понимать протоколы Zimbra

Вообще версий Z-Push есть две. Собственно Z-Push и Z-Push 2. Z-Push 2 - это alpha версия, и основное ее отличие от Z-Push первой версии это то, что в ней реализована возможность e-mail HTML синхронизации. Z-Push первой версии осущетвляет только поддержку протокола ActiveSync


Итак, качаем последнюю версию Z-Push, потом скачиваем последнюю версию Zimbra Backend


Разархивируем в папку сервера Apache (виртуальные сервера возможны тоже) архив с z-push. Далее меняем права на папку state:


  chmod 777 /var/www/z-push/state
  chown apache:apache /var/www/z-push/state

Редактируем в корне папки z-push файл config.php следующим образом:

Меняем временную зону:

  date_default_timezone_set("Europe/Moscow");

Проверяем, чтобы было:

  define('LOOSE_PROVISIONING', true);

Это нужно для поддержки старых устройств

Проверяем, чтобы было:

  define('PROVISIONING', false);

Меняем backend провайдера:

  $BACKEND_PROVIDER = "BackendZimbra";

Добавляем строчки, ответственные за работу с Zimbra:

  // ************************
  // BackendZimbra settings
  // ************************
  define('ZIMBRA_URL', 'https://NameOfYourDoman.com'); //Please do not put a trailing forward slash at the end of the url
  define('ZIMBRA_USER_DIR', 'zimbra');
  define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
  define('ZIMBRA_VIRTUAL_CONTACTS',true);
  define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
  define('ZIMBRA_VIRTUAL_TASKS',true);
  define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
  define('ZIMBRA_HTML',true);
  define('ZIMBRA_ENFORCE_VALID_EMAIL',true);
  define('ZIMBRA_SMART_FOLDERS',true);
  define('ZIMBRA_DEBUG',true);

Если вы хотите смотреть выводы служебной информации - дебаг, то делаем:

  touch /var/www/z-push/debug.txt
  chmod 777 /var/www/z-push/debug.txt

Проверяем, чтобы в системе стоял curl

Для RHEL/CentOS:

  yum install curl

Для Debian/Ubuntu:

  apt-get install php5-curl

Теперь нам необходим один файл - z_RTF.php

Скачиваем его отсюда и кладем в папку /var/www/z-push/include

Если он у вас скачался с другим именем, то просто переименовываем его в z_RTF.php

Теперь идем в /etc/httpd и редактируем настройки apache:

  Alias /Microsoft-Server-ActiveSync /var/www/z-push/index.php
  <Directory /var/www/z-push>
  AllowOverride All
  </Directory>

Далее, нам нужен файл .htaccess:

  touch /var/www/z-push/.htaccess

В нем пишем:

  php_flag magic_quotes_gpc off
  php_flag register_globals off
  php_flag magic_quotes_runtime off
  php_flag short_open_tag on

Теперь разархивируем в /var/www/z-push/backend содержимое Zimbra Backend

Проверяем, чтобы права на все папки и файлы в /var/www были как у apache.

Все - можно работать :-)

Теперь осталось настроить клиента. В частности для Android 2.3.3 это будет так:

Настройки -> Аккаунты и синх. -> Добавить аккаунт -> Exchange Active Sync

Вбиваем вашу почту и пароль на нее. Нажимаем Далее. Потом выбираем - ручная настройка

Оставляем поле Домен пустым Проверяем, чтобы почтовый адрес был в правильном виде, а именно по примеру victor@linux.ru

В поле сервер вбиваем адрес apache сервера с установленным Z-push

И все. Наслаждаемся работой :-)