Имеется решение, включающее:
- почтовый сервер SMTP/IMAP (почта)
- персональные контакты, общие контакты и директория сотрудников (CardDAV)
- персональные и общие календари (CalDAV)
Решение на PHP, AfterLogic Aurora
www.afterlogic.com/aurora Aurora доступна в двух версиях как набор скриптов (тогда там нет почтового сервера и веб сервера, и в таком случае она ставится в какое-то существующее окружение, и тогда ОС может быть как Linux, так и Windows), либо же полная сборка с почтовым сервером (Exim/Dovecot), веб сервером (nginx) и т.п. (и тогда только CentOS).
Итак, почтовый сервер может быть как встроенный, так и любой сторонний. А вот сервер контактов и календарей всегда SabreDAV (v1.8.10 на текущий момент, в будущем перейдем на SabreDAV v3). Компоненты интегрированы между собой так, что база пользователей одна и та же при работе с разными протоколами (почта, контакты, календари). Т.е. одна и та же пара емейл/пароль используется для доступа ко всем типам данным по всем протоколам. Емейл используется как логин.
Веб сервер как минимум nginx. Если построенное решение также сможет работать и на Apache большой плюс.
Требуется настроить (предположительно, на основе z-push, но это на усмотрение исполнителя) гейт ActiveSync, который позволит ActiveSync клиентам, таким как мобильные устройства iOS/Android и Outlook 2013, работать с почтой, контактами и календарями с платформой Aurora. Гейт (конвертер запросов) преобразует запросы ActiveSync в запросы SMTP/IMAP/CardDAV/CalDAV, а для ответов выполняет обратное преобразование.
Есть сведения, что библиотека z-push предоставляет весь необходимый функционал, нужно лишь разобраться с настройкой и отладкой работой нескольких бэкэндов в одной связке (почта, контакты, календари). При этом требуется поддержка следующих функций:
- SSL/TLS соединения (на любом участке, т.е. как ActiveSync сервер может быть доступен по https, так и IMAP/SMTP/CalDAV/CardDAV могут быть на SSL/TLS портах)
- HTML письма, в т.ч. с внедренной графикой и различными кодировками
- Двусторонняя синхронизация всех данных за заданный период ("полностью" или "последние 90 дней")
- Множественные календари, в т.ч. персональные и расшаренные мне другими пользователями, с синхронизацией повторяющихся событий, исключений в сериях повторений, встреч (событий, имеющих участников и статусы согласился/подумаю/отказался), поддержкой различных таймзон, если они указаны в событии
- Адресные книги, в т.ч. книга списка сотрудников (Directory) и общие контакты (shared contacts)
Предполагается, что решение сможет работать удаленно относительно основного сервера Aurora (т.к. весь обмен данными происходит по HTTP/SMTP/IMAP).
Сервер Aurora самому устанавливать не обязательно, можем выдать несколько тестовых аккаунтов. Но если для удобства разработки потребуется локальная копия, то ее можно легко скачать с сайта.
Данная задача в озвученном варианте не подразумевает программирования (просто в списке категорий нет более подходящей опции), речь именно о выборе и настройки подходящего готового решения этой задачи. Если есть альтернатива z-push, которая, по вашему мнению, подойдет лучше, то данный вариант тоже подойдет. Если же альтернатива не на PHP (а, допустим, Python), то это будет не так удобно, но тоже в принципе возможно.