QMail – Horde/Imp (CentOS 7)

Published by Lello on

Una webmail affiancata al nostro sistema di posta, conclude questo percorso legato a QMail; la possibilità di leggere la mail via web (anche se oggi con l’ausilio di smartphone & tablet è diventata solo una commodity) è un’opzione in più che vogliamo dare al nostro Cliente.

Come al solito, non voglio addentrarmi nelle innumerevoli soluzioni che esistono nel web, ma focalizzarmi su una e andare avanti. La mia scelta in questo caso è caduta sul progetto horde/imp, in particolare su Horde Groupware Webmail Edition (rel. 5.1.3. nel momento in cui scrivo queste pagine).

Il progetto Horde Groupware Webmail Ed. include:
– accesso alla mail tramite browser;
– gestione e condivisione di calendari;
– gestione e condivisione liste di contatti;
– gestione e condivisione attività, note e segnalibri

Installiamo alcuni pre-requisiti:

# cd /usr/src
# pecl install imagick
# yum install GeoIP-devel GeoIP
# yum -y install httpd httpd-tools mod_ssl php php-mysql php-mbstring libtidy php-tidy php-pecl-memcache php-devel ImageMagick ImageMagick-devel aspell aspell-devel php-mysql php-intl libicu 
# pecl install lzf 
# echo "extension=lzf.so" > /etc/php.d/lzf.ini 
# echo "extension=imagick.so" > /etc/php.d/imagick.ini

Procediamo con l’installazione di Horde Groupware Webmail Ed.; il path sarà /opt/horde

# pear channel-discover pear.horde.org
# pear install horde/horde_role
# pear run-scripts horde/Horde_Role
   Including external post-installation script "/usr/share/pear/PEAR/Installer/Role/Horde/Role.php" - any errors are in this script
   Inclusion succeeded
   running post-install script "Horde_Role_postinstall->init()"
   init succeeded
   Filesystem location for the base Horde application : /opt/horde
   Configuration successfully saved to PEAR config.
   Install scripts complete
# pear install -a horde/webmail
# echo "extension=horde_lz4.so" > /etc/php.d/horde_lz4.ini
# echo "extension=geoip.so" > /etc/php.d/geoip.ini
# echo "extension=apc.so" > /etc/php.d/apc.ini
# echo "extension=geoip.so" > /etc/php.d/geoip.ini
# echo "extension=igbinary.so" > /etc/php.d/igbinary.ini
# echo "extension=mongo.so" > /etc/php.d/mongo.ini
# echo "extension=raphf.so" > /etc/php.d/raphf.ini
# echo "extension=propro.so" > /etc/php.d/propro.ini

Creiamo il database e l’utente per horde:

# mysql -u root -p
mysql> CREATE USER 'horde_usr'@'localhost' IDENTIFIED BY 'horde_pwd';
mysql> GRANT USAGE ON *.* TO 'horde_usr'@'localhost' IDENTIFIED BY 'horde_pwd';
mysql> CREATE DATABASE IF NOT EXISTS `horde_db` ;
mysql> GRANT ALL PRIVILEGES ON `horde_db`.* TO 'horde_usr'@'localhost';
mysql> FLUSH PRIVILEGES;

Finalizziamo l’installazione di horde

# webmail-install
   What database backend should we use? ==> mysqli
   Username to connect to the database as ==> horde_usr
   Password to connect with ==> horde_pwd
   How should we connect to the database? ==> unix
   Location of UNIX socket ==> /var/lib/mysql/mysql.sock
   Database name to use ==> horde_db
   Existing mail user who you want to give administrator
permissions ==> dave@anthesia.lan

Inseriamo nel file di crontab la seguente linea:

# Horde Alarms
*/5 * * * * /usr/bin/horde-alarms

Questo cron ci permetterà di ricevere gli allarmi da horde

Creiamo il file di configurazione /etc/httpd/conf.d/horde.conf per il nostro web server:

<VirtualHost *:80>
        DocumentRoot /opt/horde
        <Directory /opt/horde>
                AllowOverride All
                Require all granted
        </Directory>
        ServerName mailtest.anthesia.lan
        ErrorLog logs/mailtest.anthesia.lan-error.log
        CustomLog logs/mailtest.anthesia.lan-access.log common

        php_admin_flag file_uploads On
        php_value upload_max_filesize 20M
</VirtualHost>

Aggiungiamo la configurazione ad horde per il nostro mail server creando il file /opt/horde/imp/config/backends.local.php, in maniera tale che l’autenticazione venga fatta dalle courier-authlib del nostro mail server:

$servers['imap'] = array(
        'name' => 'Anthesia.LAN IMAP Server',
        'disabled' => false,
        'hostspec' => 'localhost',
        'port' => 143,
        'hordeauth' => true,
        'protocol' => 'imap',
        'secure' => 'none',
        'cache' => 'true',
        'acl' => 'true',
);

Abilitiamo ed avviamo il web server:

# systemctl enable httpd
# systemctl start httpd

Non ci resta che aprire un browser, puntare a:

http://mailtest.anthesia.lan

Inseriamo come username l’indirizzo di posta del nostro amministratore (dave@anthesia.lan) e la sua password (ricordo che l’autenticazione viene effettuata da courier-authlib) ed entreremo in horde con diritti amministrativi (possibilità di configurazione dell’ambiente, dei calendari, degli address book, dei task, delle note, delle releative condivisioni fra gli utenti).

← QMail – Test Courier (CentOS)                            The End – LTM