Страница 1 из 4
Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 15:11:12
hangover
Всем привет!
Собственно, поставил сабж - красота неописуемая, аж жуть. Всё работает, почта получается-отправляется.
Осталась одна фича неработающая: поскольку сервер почтовый находится в домене Windows, хотелось бы ещё прикрутить к круглокубу адресную книгу LDAP, но что-то не растёт кокос пока..
Кусок конфига:
Код: Выделить всё
$rcmail_config['ldap_public']['MYDOMAIN'] = array(
'name' => 'Active Directory',
'hosts' => array('pdc.mydomain.local'),
'port' => 389,
'use_tls' => false,
'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
'base_dn' => 'dc=mydomain,dc=local',
'bind_dn' => 'mydomain\ldapuser',
'bind_pass' => 'Mega$ecurePa$$word',
'writable' => false, // Indicates if we can write to the LDAP directory or not.
'LDAP_Object_Classes' => array("top", "inetOrgPerson"), // To create a new contact these are the object classes to s
'required_fields' => array("cn", "sn", "mail"), // The required fields needed to build a new contact as requ
'LDAP_rdn' => 'mail', // The RDN field that is used for new entries, this field needs to be one of the search_f
'ldap_version' => 3, // using LDAPv3
'search_fields' => array('mail', 'cn'), // fields to search in
'name_field' => 'cn', // this field represents the contact's name
'email_field' => 'mail', // this field represents the contact's e-mail
'surname_field' => 'sn', // this field represents the contact's last name
'firstname_field' => 'givenName', // this field represents the contact's first name
'sort' => 'cn', // The field to sort the listing by.
'scope' => 'sub', // search mode: sub|base|list
'filter' => '', // used for basic listing (if not empty) and will be &'d with search queries. example: s
'global_search' => true, // perform a global search for address auto-completion on compose
'fuzzy_search' => true); // server allows wildcard search
При попытке открыть адресную книгу ничего не возвращается, даже ошибок. $rcmail_config['debug_level'] повышал - всё равно тишина.
php-ldap стоит.
Вопрос: у кого-нибудь сабж нормально работает? Если да, то не могли бы вы привести пример работающего конфига или ткнуть в корявое место в моём?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 15:22:17
Larin
о. интересная тема. через недельку и мне таким же придётся заниматься.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 16:44:40
princeps
навскидку:
Может слэшь как-то экранировать надо? Или писать ldapuser@mydomain?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 18:05:47
hangover
Тээк, уже лучше..
видоизменил следующим образом:
Код: Выделить всё
$rcmail_config['address_book_type'] = 'ldap';
'port' => 3268,
'bind_dn' => 'ldapuser',
Т.е., указал порт Global Catalog'a, чтоб пошустрее шуршало, и пользователя без домена указал.
При составлении нового письма мыло тащится: например, начинаю набирать "alex" - вытаскиваются пользователи, у которых мыло начинается с этого буквосочетания, т.е.
Код: Выделить всё
'global_search' => true, // perform a global search for address auto-completion on compose
делает своё дело.
Но при открытии, собственно, адресной книги, прежняя тишина, список пуст...
Щас попробую поставить стандартный 389-й LDAP-порт, проверю, будет ли автодополнение работать.
Насчёт пустого общего списка - у меня есть подозрение, что он получается слишком большой и поэтому не переваривается пехепе. Возможно такое?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 18:25:37
hangover
Вобщем, при указании 389-го порта поиск не даёт результатов вообще - ни по имени, ни по мылу пользователя.
Вернул назад 3268 - бодро заработало автодополнение при составлении нового письма, причём следующим образом:
- начинаешь вбивать латинские символы - всё ОК, сразу вываливается список учёток;
- начинаешь вбивать русские символы (фамилию, например), список (причём, неполный) вываливается только, если введена одна или две буквы, если больше, то тишина;
- в разделе адресной книги по-прежнему нифига нету.
Что-то мне сильно кажется, что загвоздка именно в PHP, так ли это? Если ли у скриптов, использующих php-ldap, какие-то свои ограничения?
(Хотя, что это я, SAMS-то ведь совершенно чудесно тащит из домена полный список пользователей)...
Вобщем, какие будут рекомендации, уважаемые товарищи?
И, да, вопрос про рабочий конфиг остаётся открытым - если у кого пашет, поделитесь, пожалуйста.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 22:35:06
princeps
Что-то мне подсказывает, что вряд ли тебе ответят. А жаль, сам собирался нечто подобное устроить через пару месяцев.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-11 22:36:10
princeps
OpenLDAP-клиент у тебя установлен? Может быть он нужен?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-12 6:36:22
hangover
Стоит... Он экзимом используется:
Код: Выделить всё
root@gate:[/usr/ports/mail/roundcube]# pkg_info | grep ldap
openldap-client-2.3.41 Open source LDAP client implementation
pam_ldap-1.8.4 A pam module for authenticating with LDAP
php5-ldap-5.2.8_1 The ldap shared extension for php
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-13 12:17:55
Lehan
У меня работает так:
Код: Выделить всё
$rcmail_config['ldap_public']['Test 248'] = array(
'name' => 'Test 248',
'hosts' => array('test248.local'),
'port' => 3268,
'use_tls' => false,
'user_specific' => false,
'base_dn' => 'dc=test248,dc=local',
'bind_dn' => 'roundcube@test248.local',
'bind_pass' => 'Pa$$w0rd',
'writable' => false,
'ldap_version' => 3,
'search_fields' => array('mail', 'cn'),
'name_field' => 'cn',
'email_field' => 'mail',
'surname_field' => 'sn',
'firstname_field' => 'givenName',
'sort' => 'cn',
'scope' => 'sub',
'filter' => '',
'global_search' => true,
'fuzzy_search' => true);
Но для некоторых контактов в адресной книге пишет "Требуемый контакт не найден". Пока еще не разбирался с этим. Большинством контактов показывает и при наборе сообщения тоже дописывает имена.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-13 13:36:38
hangover
Спасибо за конфиг!
В принципе, попробовал - та же самая история..
Код: Выделить всё
root@gate:[/root]# pkg_info | grep roundcube
roundcube-0.2,1 Fully skinnable XHTML/CSS webmail written in PHP
Может, чото поломали после беты, может, нет.. Вобщем я всё больше склоняюсь к мысли что и хер с ней, с адресной книгой... Хотя, конечно, было бы очень неплохо...
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-02-13 15:06:35
Lehan
Забыл добавить, что у меня контроллеры домена на Windows Server 2008. Режим native. Хотя он полностью совместим с 2003 в плане ldap.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-03-19 14:38:26
Larin
добавил фильтр
Код: Выделить всё
'filter' => '(&(mail=*)(!(msExchHideFromAddressLists=TRUE)))',
вроде стало нормально пользователей искать.
только в адресную книгу поля Имя, Полное имя и т.д. не у всех юзеров вносит. заметил, что трабл в длине OU и логина...
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 10:53:26
yolkov
Подключил к Roundcube 2 адреные книги, 1 sql - персональную, 2ю ldap - общую из каталога опенлдап
Код: Выделить всё
$rcmail_config['address_book_type'] = 'sql';
$rcmail_config['ldap_public']['domain.ru'] = array(
'name' => 'domain.ru',
'hosts' => array('192.168.1.1'),
'port' => 389,
'use_tls' => false,
'user_specific' => false,
'base_dn' => 'dc=domain,dc=ru',
'bind_dn' => 'cn=exim,ou=system,dc=domain,dc=ru',
'bind_pass' => 'pass',
'writable' => false, // Indicates if we can write to the LDAP directory or not.
'ldap_version' => 3, // using LDAPv3
'name_field' => 'displayName', // this field represents the contact's name
'email_field' => 'mail', // this field represents the contact's e-mail
'surname_field' => 'sn', // this field represents the contact's last name
'firstname_field' => 'givenName', // this field represents the contact's first name
'sort' => 'sn', // The field to sort the listing by.
'scope' => 'sub', // search mode: sub|base|list
'filter' => '(&(mail=*)(objectClass=dbmailUser))', // used for basic listing (if not empty) and will be &'d with search queries. example: status
'global_search' => true, // perform a global search for address auto-completion on compose
'fuzzy_search' => true); // server allows wildcard search
но с лдап есть проблемы:
1. в roundcube в разделе "Контакты" когда указываешь адресную книгу из лдап в столбце "Отображаемое имя" выводятся не подписанные (пустые) строки, но если выбрать любую строку из этого столбца, то в следующем столбце все данные отображается верно(Отображаемое имя, Имя, Фамилия, мыло). Пробывал вставлять записи на латинице, результат тот же. В sql книге отображение есть, это видимо трабла лдапа
2. при создании нового письма автокомплит не ищет по имени, только по емайл, раньше думал что из-за кирилицы, проверил, с латиницей так же.
Кто нибудь решил эти проблемы?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 11:15:35
Larin
никто ничего не решил. читай тему внимательнее.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 11:48:07
yolkov
никто ничего не решил. читай тему внимательнее.
тему читал. там написано что не работает. у меня поиск работает, просто у в результатах, а вернее при отображении результата есть проблемы, а именно в столбце "Отображаемое имя" выводятся не подписанные (пустые) строки, если на эту строку встать, то в следующем столбце все данные выводятся корректно. Т.о. книга работает, единственная и значимая сложноть что выводимая книга выдает результат в виде списка, который нельзя идентифицировать пока не встать на какую-нибудь запись вот.
проблема автокомплита для меня пока на 2м месте, сначало 1ю надо решить
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 12:10:19
Larin
yolkov писал(а):никто ничего не решил. читай тему внимательнее.
тему читал. там написано что не работает. у меня поиск работает, просто у в результатах, а вернее при отображении результата есть проблемы, а именно в столбце "Отображаемое имя" выводятся не подписанные (пустые) строки, если на эту строку встать, то в следующем столбце все данные выводятся корректно. Т.о. книга работает, единственная и значимая сложноть что выводимая книга выдает результат в виде списка, который нельзя идентифицировать пока не встать на какую-нибудь запись вот.
проблема автокомплита для меня пока на 2м месте, сначало 1ю надо решить
это общая проблема про которую писали не раз.
никто решить не смог.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 13:26:49
yolkov
нашел, обещают поправить в 0.2.2
http://trac.roundcube.net/query?group=s ... tone=0.2.2
1485783, 1485792
кстати если поставить 'name_field' => 'sn', то столбец "Отображаемое имя" будет не пустой а состоять из фамилий, хоть и не полное имя но лучше чем пустой список.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 13:43:25
yolkov
все нашел как исправить
'name_field' => 'displayName'
если "displayName" заменить на "displayname", то все заработает. Видимо проблемы с регистром.
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 13:49:40
yolkov
теперь правдо в карточке(третий столбец) в поле "Отображаемое имя" ничего не определяется, но это фигня.
Осталось разобраться с автокомплитом. Есть идеи как?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-14 14:39:30
yolkov
автокомплит работает но с багом, если искать по email то находит без проблем, если пользователи введены с прописной или латинецей - проблем нет, а вот если фамилия, имя, отчество написаны с заглавной буквы, то он не работает. Не зависимо от того лдап или бд. В лдапе поиск ведется видимо по 'name_field' => 'displayname'.
Например:
Сидоров Иван Петрович
ищу "с" не находит, а если написать "идоров" то он находить, причем без разницы в каком регистре я буду его искать хоть "ИдОРоВ", все равно найдет, и соответственно и "идо", и "дор", т.е. любые комбинации.
Короче: проблема именно в ЗАГЛАВНЫХ кириллических буквах в лдапе или бд (без разницы).
видимо проблема в кодировке, не обрабатывается ЗАГЛАВНЫЕ КИРИЛЛИЧЕСКИЕ символы
господа ПХПшники помогите поправить?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-15 8:40:18
yolkov
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-15 9:15:11
Larin
ох. много же ты понаписал:)
надо попробовать roundcube еще раз. в какой версии все эти фиксы закоммитят?
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-15 9:46:36
yolkov
я руками подправил и все нормально у меня работает
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-25 19:40:57
Cancer
Блин попробовал сделать и фиг выходит
Код: Выделить всё
$rcmail_config['address_book_type'] = 'ldap';
$rcmail_config['ldap_public']['domain.local'] = array(
'name' => 'domain.local',
'hosts' => array('127.0.0.1'),
'port' => 389,
'use_tls' => false,
'user_specific' => false,
'base_dn' => 'ou=addressbook,dc=domain,dc=local',
'bind_dn' => 'cn=root,dc=domain,dc=local',
'bind_pass' => 'Пароль',
'ldap_version' => 3,
'search_fields' => array('mail', 'cn'),
'name_field' => 'displayName',
'email_field' => 'mail',
'surname_field' => 'sn',
'firstname_field' => 'givenName',
'sort' => 'cn',
'scope' => 'sub',
'filter' => '(&(mail=*)(objectClass=dbmailUser))',
'global_search' => true,
'fuzzy_search' => true);
Использую OpenLDAP, thunderbird нормально получает пользователей
самое главное что
тишина полная, кроме того когда подключаюсь thunderbird
В логах куба
Код: Выделить всё
[25-May-2009 20:09:14] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/addressbook/func.inc on line 25
[25-May-2009 20:13:28] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/addressbook/func.inc on line 25
[25-May-2009 20:13:36] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/mail/autocomplete.inc on line 30
[25-May-2009 20:15:32] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/mail/autocomplete.inc on line 30
[25-May-2009 20:15:43] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/addressbook/func.inc on line 25
[25-May-2009 20:15:51] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/mail/autocomplete.inc on line 30
[25-May-2009 20:23:23] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/mail/autocomplete.inc on line 30
[25-May-2009 20:26:02] PHP Fatal error: Call to a member function set_pagesize() on a non-object in /usr/local/www/roundcube/program/steps/mail/autocomplete.inc on line 30
Re: Roundcube + адресная книга LDAP
Добавлено: 2009-05-26 11:48:04
yolkov
прочти внимательней что я писал выше.
измени 'name_field' => 'displayName',
на 'name_field' => 'displayname',
и еще убери
$rcmail_config['address_book_type'] = 'ldap';
или вообще удали или поставь sql