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...

Ten kto umie pisze kod, ten kto nie umie pisze książki..., albo blog.

Pon Wt Śr Czw Pt So N
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-2025 eZ Systems AS