Introduzione

Roundcube è un client di posta elettronica IMAP basato sul web con un'interfaccia utente molto intuitiva e moderna scritta in PHP. Per utilizzare Roundcube è necessario solo un browser Web.

RoundCube include tutte le funzionalità di cui hai bisogno in un client di posta elettronica come la composizione di messaggi richtext / HTML, rubrica, supporto per e-mail MIME / HTML, identità di mittenti multipli, controllo ortografico, visualizzazione a tre colonne, gestione del trascinamento della selezione e altro ancora.

Prerequisiti

Prima di continuare con questo tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.

Inoltre è necessario avere Nginx, MySQL e PHP installati sul sistema. Seguire questa guida: Come installare LEMP su Ubuntu 18.04 LTS.

Se desideri installare e configurare Roundcube Webmail su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare le dipendenze PHP

Inizieremo aggiornando l'elenco dei pacchetti e installando tutte le dipendenze PHP richieste per installare roundcube webmail:

sudo apt update
sudo apt install php php-intl php-mail-mime php-net-smtp php-net-socket php-pear php-xml php-intl php-xml php-gd php-gd php-imagick php-ldap php-zip php-auth-sasl php-net-idna2 php-net-ldap3

Una volta completata l'installazione, eseguire il comando sed seguente per impostare il valore di date.timezone su UTC:

sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini

Riavvia il servizio FPM di PHP per rendere effettive le modifiche:

sudo systemctl restart php7.2-fpm

Creare il database MySQL

Roundcube supporta i back-end del database MySQL , PostgreSQL e SQLite.

Se hai seguito la nostra guida per installare LEMP, consigliata nei prerequisiti di questo tutorial, avrai installato MySQL.

In questo tutorial useremo MySQL come nostro server database. Accedi alla shell MySQL:

mysql -u root -p

Crea un nuovo database MySQL, un utente e concedi i privilegi a quell'utente sul database appena creato:

CREATE DATABASE roundcubemail;
GRANT ALL ON roundcubemail.* TO 'roundcubemail'@'localhost' IDENTIFIED BY 'P4ssvv0rD';
FLUSH PRIVILEGES;
exit;

Scaricare Roundcube

Al momento della stesura di questo documento, 1.4.2 è l'ultima versione stabile di Roundcube. Prima di continuare con il passaggio successivo, è necessario controllare la pagina di download di Roundcube per vedere se è disponibile una versione più recente.

Inizia scaricando l'archivio Roundcube usando il seguente comando wget :

wget https://github.com/roundcube/roundcubemail/releases/download/1.4.2/roundcubemail-1.4.2.tar.gz

Una volta completato il download, estrarre l'archivio e spostare il codice Roundcube nella directory /var/www/roundcubemail:

tar xzf roundcubemail-1.4.2.tar.gz
sudo mv roundcubemail-1.4.2/ /var/www/html/roundcubemail

Nginx e PHP-FPM sono in esecuzione sotto l'utente www-data, quindi dobbiamo cambiare la proprietà della directory /var/www/postfixadmin in quell'utente:

sudo chown -R www-data: /var/www/html/roundcubemail

Configurare Nginx

Apri il file di configurazione di Nginx, nel nostro esempio utilizziamo il file di default. Se invece hai un dominio configurato utilizza il file nomedominio.com.conf e aggiungi le seguenti direttive:

sudo nano /etc/nginx/sites-available/default
...
location /roundcubemail {
   index index.php;
   try_files $uri $uri/ /roundcubemail/index.php;
}
location ~ ^/roundcubemail/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
   deny all;
}
location ~ ^/roundcubemail/(bin|SQL|config|temp|logs)/ {
   deny all;
}
...

Se hai seguito la nostra guida per installare LEMP, consigliata nei prerequisiti, la configurazione finale dovrebbe essere simile alla seguente:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name server_domain_or_IP;

        location /roundcubemail {
           index index.php;
           try_files $uri $uri/ /roundcubemail/index.php;
        }
        location ~ ^/roundcubemail/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
           deny all;
        }
        location ~ ^/roundcubemail/(bin|SQL|config|temp|logs)/ {
           deny all;
        }

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Ricarica il servizio Nginx per rendere effettive le modifiche:

sudo systemctl reload nginx

Configurare Roundcube

Apri il browser e vai a https://DOMINIO_O_IP/roundcubemail/installer.

Vedrai la prima pagina di verifica di roundcube.

Se vengono caricate tutte le estensioni PHP richieste, possiamo procedere al passaggio successivo, dove possiamo configurare la nostra installazione di Roundcube.

La parte più importante qui è inserire i dati database MySQL.

Al termine del passaggio di configurazione, passare al passaggio successivo e importare la struttura del database MySQL di Roundcube facendo clic sul pulsante Initialize database.

Una volta creata la struttura del database, eliminare la directory installer per impedire la riconfigurazione e/o l'accesso non autorizzato.

sudo rm -rf /var/www/html/roundcubemail/installer

L'abilitazione della pulizia automatica della cache di Roundcube è facoltativa ma consigliata:

sudo crontab -u www-data -l | { cat; echo "18 11 * * * /var/www/html/roundcubemail/bin/cleandb.sh"; } | sudo crontab -u www-data -

Verificare l'installazione di Roundcube

Apri il tuo browser web, vai a: https://DOMINIO_O_IP/roundcubemaile accedi usando il nome utente e la password del tuo account e-mail.

Abilitare plugin Roundcube

Roundcube viene fornito con un numero di plug-in che sono disabilitati per impostazione predefinita. In questa guida abiliteremo i plug-in password e managesieve. Questi plug-in consentiranno agli utenti di creare filtri e modificare le loro password dall'interfaccia di Roundcube.

Aprire il seguente file di configurazione di roundcubemail:

sudo nano /var/www/html/roundcubemail/config/config.inc.php

Modificare l'ultima riga $config['plugins'] = array(); in questo modo:

// Enable plugins
$config['plugins'] = array('managesieve','password');

Aggiungere alla fine del file queste righe, facendo attenzione a modificare i dati con le proprie credenziali:

$config['password_driver'] = 'sql';
$config['password_db_dsn'] = 'mysql://postfixadmin:[email protected]/postfixadmin';
$config['password_query'] = 'UPDATE mailbox SET password=%c WHERE username=%u';

Salvare e chiudere il file.

Conclusione

Questo tutorial ti ha mostrato come installare e configurare Roundcube Webmail sul tuo sistema Ubuntu, oltre a come installare e abilitare i plugin Roundcube per aggiungere funzionalità aggiuntive come i filtri setaccio.