все что связано с моей работой
Главная » Unix » Обновленный Roundcube

Обновленный Roundcube

После очередного обновления пакетов в системе случилось мне полезть в roundcube. Морда к почте была, но практически не использовалась. Это был просто запасной вариант на случай “если вдруг я на море”, а поставил куб потому что на момент установки это был единственный нормальный клиент с ajax-ом. И в последние дни отпуска мне пришлось залезть туда, сколько ж было удивления.

Первое и самое главное это новая тема “larry”, если б не внешний вид – вряд ли я б полез разбираться. Теперь почти везде используется JQuery UI, что еще добавляет и красоты и юзабельности. Вообщем клиент вырос. И вырос на столько, что прям захотелось его использовать, а не держать “на всякий пожарный”. Так и началось копание.

В качестве SMTP сервера у меня стоит postfix. И я в процессе борьбы со спамом завернул на нем так ограничения (рестрикты) что веб морда перестала отправлять письма. Но мне собственно не надо было, поэтому спустил все на тормозах. Теперь же надо как-то все вернуть. Оказалось все проще простого. С какой-то версии куб умеет отправлять и с TLS и с SSL, надо всего-то указать “протокол” перед именем сервера, по типу http или ftp:

$rcmail_config['smtp_server'] = 'tls://localhost';
$rcmail_config['smtp_port'] = 25;
// имя пользователя, используем с которым входили в куб
// (с доменной частью)
$rcmail_config['smtp_user'] = '%u'; 
// пароль, который использовался при входе в куб
$rcmail_config['smtp_pass'] = '%p'; 
// ничего не ставим, куб сам выберет лучший способ
$rcmail_config['smtp_auth_type'] = ''; 
$rcmail_config['smtp_auth_cid'] = NULL;
$rcmail_config['smtp_auth_pw'] = NULL;
//  имя машины (dns) которое будет использовано при HELO EHLO
$rcmail_config['smtp_helo_host'] = 'mail.example.tld'; 
$rcmail_config['smtp_timeout'] = 0;

И все… почта начала отправляться не нарушая ограничения постфикса.

Следующее исправление:

$rcmail_config['username_domain'] = 'example.tld';

теперь при входе в куб не надо писать полный адрес (admin@example.tld), а достаточно просто admin, куб сам добавит доменную часть из этого параметра. Но это скорее плюшка, чем серьезная проблема.

Убрал

$rcmail_config['product_name'] = ''; //'Финансовое управление.Почта';

потому что, название выводилось внизу окна авторизации да еще и маленьким шрифтом.

Еще не показывалась дата письма, и сыпалось много ошибок в логе про timezone, вылечилось добавление в php.ini такой строчки:

[Date]
; Defines the default timezone used by the date functions
date.timezone = Europe/Moscow

И не забыть перезапустить Apache!

Следующим этапом надо настроить корпоративную адресную книгу, одну на всех. Корпоративная адресная книга у нас храниться в OpenLdap с разбиением на группы (ou=ГРБС, Поселения, Минфин). Но почтовые клиенты (в основном у нас используется Thunderbird) ищут в каталоге ldap достаточно быстро, поэтому всегда настраивал поиск без учета “групп”. В веб интерфейсе и места меньше и поиск дольше, поэтому решил сделать несколько отдельных адресных книг и так как есть вкусный параметр autocomplete_addressbooks, в котором можно указать книгу для автозаполнения. Очень вкусная штука, все прям как у взрослых яндексов и гмайлов…

Благо это делается “в 2 нажатия”, приведу всех кусок для одной книги:

$rcmail_config['ldap_public']['GRBS'] = array( // тут надо указать идентификатор книги
  'name'          => 'ГРБС', //  название книги, как будет написано в морде
  'hosts'         => array(127.0.0.1), //  адрес ldap сервера
  'port'          => 389,
  'use_tls'	      => false,
  'user_specific' => false,  
  'base_dn'       => 'ou=ГРБС,dc=example,dc=tld', // самая важная строчка
  'bind_dn'       => '',
  'bind_pass'     => '',
  'search_base_dn' => '',
  'search_filter'  => '(mail=*)',   // фильтр поиска
  'writable'      => false,   
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"), 
  'required_fields'     => array("cn", "sn", "mail"),     
  'LDAP_rdn'      => 'mail', 
  'ldap_version'  => 3,       // using LDAPv3
  'search_fields' => array('mail', 'cn'),  // по каким полям искать
  'name_field'    => 'cn',    // поле содержащие имя
  'email_field'   => 'mail',  // поле содержащие e-mail
  'surname_field' => 'sn',    
  'firstname_field' => 'sn',  
  'sort'          => 'cn',    
  'scope'         => 'sub',   
  'filter'        => '',      
  'fuzzy_search'  => true,    
  'sizelimit'     => '0',     
  'timelimit'     => '0',     
);

Все остальные делаются простым копи-пастом и заменой base_dn – нужно изменить ou. И еще одну книгу в base_dn которой убираем ou, и ее идентификатор (из первой строчки) вставляем в  autocomplete_addressbooks. Теперь при составлении письма слева удобный поиск вроде как “по разделам” и при автодополнении поиск происходит по всем адресам.

На этом этапе уже можно пользоваться. И я двух сотрудников пересадил с Thunderbird-а на веб-клиент в качестве эксперимента, насколько это юзабельно для пользователей.

В следующий раз немного о плагинах – который делают нашу жизнь лучше :)

Комментариев нет

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.