Добавляем поддержку протокола 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
И все. Наслаждаемся работой :-)
