Tak jak pisałem ostatnio instalacja tego rozszerzenia jest prosta. Konfiguracja też. Wystarczy skopiować domyślny plik konfiguracyjny:

cd /usr/share/roundcubemail/plugins/managesieve
cp config.inc.php.dist config.inc.php

Zmienić w pliku /usr/share/roundcubemail/plugins/managesieve/config.inc.php port z 2000 na 4190. U mnie wygląda to tak:

$rcmail_config['managesieve_port'] = 4190;

To oczywiście ma związek z plikiem /etc/cyrus.conf w którym mam wpis:

SERVICES {
(...)
  sieve         cmd="timsieved" listen="sieve" prefork=0

jeżeli jest wykomentowany to trzeba włączyć.

Wejście w konfigurację filtrów powoduje założenie domyślnego zbioru filtrów o nazwie managesieve oraz link do niego defaultbc i tym samym rozwiązuje problem wpisów w logu typu

lmtpunix[1000]: IOERROR: fstating sieve script /var/lib/imap/sieve/u/user/defaultbc: No such file or directory

ale tylko dla tego konkretnego użytkownika. Jest to łatwiejsze niż posługiwanie się poleceniem interfejsem znakowym sieveshell.

W poprzednim odcinku pisałem jak zainstalować roundcube z paczki. Teraz opiszę instalację rozszerzeń, tzw. plugin'ów.

Zakładam, że czytający ma przynajmniej podstawową wiedzę z zakresu programowania obiektowego, biegłą znajomość SQL z obsługą triggerów w szczególności oraz potrafi policzyć transkonduktancję czwórnika.

No to do dzieła. Otwieramy w ulubionym edytorze (oczywiście vi) plik /etc/roundcubemail/main.inc.php i poprawiamy linię

$rcmail_config['plugins'] = array();

na np. taką:

$rcmail_config['plugins'] = array('managesieve', 'markasjunk');

właśnie włączyliśmy dwie nowe funkcje: zarządzanie skryptami sieve i przenoszenie wiadomości do katalogu Spam jednym przyciskiem.

W standardowej instalacji RoundCubeMail jest dostarczony z następującymi rozszerzeniami:

acl
additional_message_headers
archive
autologon
database_attachments
debug_logger
emoticons
enigma
example_addressbook
filesystem_attachments
help
hide_blockquote
http_authentication
jqueryui
managesieve
markasjunk
newmail_notifier
new_user_dialog
new_user_identity
password
redundant_attachments
show_additional_headers
squirrelmail_usercopy
subscriptions_option
userinfo
vcard_attachments
virtuser_file
virtuser_query

więcej o nich można przeczytać na specjalnej stronie.

W CentOS z EPEL (u mnie epel-release-6-8) instalacja jest prosta:

yum install roundcubemail

i już.

Teraz trzeba przygotować bazę. Tu nie ma filozofii tak jak każe plik INSTALL. Zmieniłem nazwę bazy i użytkownika: rcm, to skrót od RoundCubeMail:

create database rcm character set utf8;
create user 'rcmuser'@'localhost' identified by 'tajnehaslo';
grant all privileges on rcm.* to 'rcmuser'@'localhost';

Jak widać hasło jest tajne ;-) Teraz trzeba te same nazwy ustawić w pliku:

/etc/roundcubemail/db.inc.php

w linii

$rcmail_config['db_dsnw'] = 'mysql://rcmuser:tajnehaslo@localhost/rcm';

a następnie zainicjować bazę poleceniem

mysql -u rcmuser -p rcm < /usr/share/doc/roundcubemail-0.8.5/SQL/mysql.initial.sql

wystarczy podać hasło i chwilę poczekać.

Dodatkowo w pliku

/etc/httpd/conf.d/roundcubemail.conf

trzeba dodać uprawnienia dla własnego komputera (jeżeli nie instalujemy lokalnie). W oryginale było:

Alias /roundcubemail /usr/share/roundcubemail

<Directory /usr/share/roundcubemail/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

ja zmieniłem na:

Alias /roundcubemail /usr/share/roundcubemail

<Directory /usr/share/roundcubemail/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 1.2.3.4
        Allow from ::1
    </IfModule>
</Directory>

gdzie 1.2.3.4 to zewnętrzny adres IP z którego konfigurowałem zdalnie serwer.

Teraz już można się zalogować na serwer (gdy IP jest 4.3.2.1):

http://4.3.2.1/roundcubemail/

i używać podając wszystkie dane konta. W teorii za pomocą tak postawionego serwera można sprawdzać pocztę na dowolnym innym.

W przypadku CentOS 6.4 można zamiast wiadomości dostać komunikat: Service Unavailable Error 500, a w pliku logu

tail /var/log/roundcubemail/errors

miałem:

PHP Error: Could not perform encryption; make sure Mcrypt is installed or lib/des.inc is available in /usr/share/roundcubemail/program/include/rcmail.php on line 1474 (POST /roundcubemail/?_task=login&_action=login)

rozwiązaniem jest zamiana w pliku

/etc/php.d/mcrypt.ini

lini

extension=module.so

na

extension=mcrypt.so

i restart serwera.

Ponieważ RoundCubeMail ma aspiracje bycia aplikacją, więc trzeba podać również nazwę serwera. Tutaj zakładam, że serwer powinien być jeden (co najwyżej kilka do wyboru z listy), bo po co obcy ludzie mają mi zapychać łącze.

Podstawową modyfikacją jest ustawienie wartości $rcmail_config['default_host'] na coś sensownego. Ja mam:

$rcmail_config['default_host']='ssl://localhost:993';

oczywiście przy połączeniu lokalnym można nie używać szyfrowania, ale to następnym razem...

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
eZ Publish™ copyright © 1999-2024 eZ Systems AS