Решил вплотную заняться тестирование софтинки: eGroupware 1.6 (на русском).
Штука позитивная. Стоит в тестовом режиме в моей компании. Хорошего и полезного в ней много. Но как всегда расскажу о «подводных камнях».
eGroupware, точнее ее модуль работы с почтой, опирается на любой сторонний почтовый сервер, с доступом к ящикам по IMAP. И, как заявляют разработчики, умеет нормально работать с LDAP серверами. Я там видел даже взаимодействие с AD. Т.е. как минимум аккаутны пользователей и адресные книги можно вынести в LDAP. Письма в egroupware можно прикреплять к заданиям, календарю и прочим полезным модулям, поэтому почтовый модкль по хорошему нужен.
Исходя из вышеперечисленного, решил скрестить почтовый сервер (доступ к ящикам при помощи Cyrus IMAP), OpenLDAP и eGroupware. Идея простая. В eGroupware заводится пользователь, информация о нем сохраянется в LDAP. Почтовый сервер берет инфу о пользователе из LDAP + включена функция автоматического создания почтовых ящиков в Cyrus IMAP. Заодно сторонние клиенты (предполагался Thunderbird) смогут брать из LDAP корпоративную адресную книгу.
И тут пошли подводные камни.
- Учетные записи пользователей великолепно сохраняются в LDAP сервере. Но, к сожалению, модуль адресной книги их не видит. Приходится делать запись пользователя в адресбуке руками.
- Почтовый сервер сам создает почтовые ящики и все служебные папки в ящике. Но я так и не смог найти, как автоматически давать доступ служебным пользователям к некоторым папкам юзверя. Например, это необходимо для работы спам фильтра. Он должен уметь помещать почту в специальные папки и забирать почту из папок для обучения.
- Модуль адресной книги может экспортировать индивидуальные и групповые адресные книги в LDAP, но не видит их. Т.е. я эти записи увидел при помощи интсрументов, для работы с LDAP сервером.
- Модуль работы с почтой, не отображает русские названия папок в IMAP сервере, если они сделаны сторонней программой в кодировке UTF-8.
После просмотра логов, оказалось, что в модуле адресной книги вызывается функция, отсутсвующая в дистрибутиве egroupware. Я пока не понял (не знаю я PHP) это внешняя функция или разрабы забыли что то положить в дистрибутив. Сейчас разбираюсь с этим вопросом.
В результате, принял решение. Буду все данные хранить в MySQL (хранилище по умолчанию). Разрешил пользователям настраивать почтовый сервер, услугами которого они пользуются самостоятельно. Если пользователю потребуется почтовый аккаунт, создам его вручную на почтовом сервере.
В остальном все пока тип-топ. Шикарный функционал.
В перспективе — прикрутить модуль, позволяющий подключаться к основным службам типа адресной книги и календаря, сторонним программам. (Таблица совместимости) Хотя всего функционала eGroupware при помощи внешнего клиента не получить 🙂 (Список модулей)