Roundcube è un client di posta elettronica basato su browser IMAP open-source. Ha guadagnato popolarità per il supporto delle ACL e l'utilizzo di AJAX (Asynchronous JavaScript and XML). Offre funzionalità eccellenti e complete come la gestione delle email, MIME e la manipolazione delle cartelle, solo per citarne alcune. Inoltre, Roundcube offre ricerca dei messaggi, controllo ortografico, calendari e gestione dei contatti in modo fluido. Soprattutto, dispone di un robusto repository di plugin e di opzioni di personalizzazione aggiuntive rispetto ad altri popolari client basati su browser.
Roundcube è un MUA. A differenza di un MTA, avrai bisogno di un servizio che gestisca la tua posta elettronica, preferibilmente utilizzando il tuo server di posta. Dai un'occhiata al nostro tutorial sulla configurazione del server di posta per aggiungere il server di posta di tua scelta.
Quando invii un'email, il MUA trasferisce il suo contenuto al server MTA utilizzando SMTP. Dopo alcuni passaggi, l'MTA ricevente ottiene l'email e la trasferisce al proprio MDA utilizzando IMAP. Infine, il destinatario visualizza l'email utilizzando il MUA.
Comprendiamo questi termini:
- MUA: Un mail user agent è un'interfaccia che consente l'interazione dell'utente per visualizzare e inviare email.
- MTA: Un mail transfer agent trasferisce le email dal mittente al destinatario.
- SMTP: Un Simple Mail Transfer Protocol è un protocollo che il MUA utilizza per inviare email all'MTA.
- MDA: Tutte le email inviate dall'MTA vengono ricevute e memorizzate presso il mail delivery agent.
- IMAP: L'Internet Message Access Protocol è un protocollo che gli MDA utilizzano per recapitare la posta al MUA.
In questo tutorial, ti guideremo attraverso i passaggi per installare un client webmail con Roundcube su Ubuntu 20.04.
Iniziamo!
Prerequisiti
Per seguire questo tutorial, avrai bisogno di quanto segue:
- L'ultima versione di Ubuntu installata sul tuo sistema.
- Gli utenti di sistema devono avere privilegi sudo e un firewall.
- Inoltre, puoi sfruttare iptables per configurare i firewall sul tuo sistema.
- Uno stack LAMP.
- Configuralo seguendo la guida Come configurare lo stack LAMP
- Un server di posta elettronica basato su IMAP.
Passo 1: Installare estensioni e dipendenze
Prima di iniziare, aggiorniamo i repository per evitare conflitti software:
|
1 |
sudo apt update |
Successivamente, installeremo le dipendenze di Roundcube e configureremo PHP. Usa il seguente comando per installare le estensioni e le librerie PHP:
|
1 |
sudo apt-get install php-xml php-mbstring php-intl php-zip php-pear zip unzip git composer |
Per impostazione predefinita, alcune librerie PHP sono disabilitate. Dobbiamo abilitare queste librerie navigando nel file php.ini del server situato in /etc/php/7.0/apache2/php.ini. Apri il file php.ini utilizzando l'editor di testo nano:
|
1 |
sudo nano /etc/php/7.0/apache2/php.ini |
A differenza delle opzioni di commento più comunemente utilizzate che iniziano con un cancelletto ( #), usiamo un punto e virgola ( ;) per commentare e decommentare le righe. Aggiungi un punto e virgola all'inizio per commentare una riga. Allo stesso modo, rimuovi un punto e virgola per decommentare una riga.
Diamo un'occhiata alla sezione contenente le righe commentate che iniziano con extension=. Rimuovi i punti e virgola per decommentare le estensioni php_mbstring.dll e php_xmlrpc.dll:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
. . . ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll ;extension=php_exif.dll ; Deve essere dopo mbstring poiché esso dipende da esso ;extension=php_mysqli.dll . . . ;extension=php_sqlite3.dll ;extension=php_tidy.dll extension=php_xmlrpc.dll ;extension=php_xsl.dll . . . |
Inoltre, aggiungi extension=dom.so in fondo al blocco delle estensioni:
|
1 2 3 4 5 |
. . . extension=php_xmlrpc.dll ;estensione=php_xsl.dll estensione=dom.so . . . |
- Modifica file:
- Modifica il date.timezone:
Vai all'opzione delle impostazioni, naviga su date.timezone, e decommentalo. Successivamente, aggiungi il tuo fuso orario usando le virgolette. Dai un'occhiata alla pagina dei fusi orari di PHP per vedere come appare il fuso orario formattato nel file php.ini . Ad esempio, se vieni dall'Europa, il tuo file sarà simile a questo:
|
1 2 3 4 5 6 |
. . . [Date] ; Definisce il fuso orario predefinito utilizzato dalle funzioni di data ; http://php.net/date.timezone date.timezone = "Europe/Moscow" . . . |
-
- Modifica il file upload_max_filesize :
Quindi, naviga verso l'impostazione upload_max_filesize . Per impostazione predefinita, vedrai il limite massimo impostato su 2MB. In base alle tue esigenze, puoi aumentare la dimensione massima del file a piacimento. Tuttavia, la maggior parte dei server di posta limita la dimensione totale degli allegati fino a 10MB. In questa guida, manterremo la dimensione massima a 13MB in modo che più utenti possano aggiungere allegati contemporaneamente:
|
1 2 3 4 5 |
. . . ; Dimensione massima consentita per i file caricati. ; http://php.net/upload-max-filesize upload_max_filesize = 13M . . . |
-
- Modifica il file post_max_size :
Ora, cerca post_max_size. A differenza dell'impostazione upload_max_filesize che si applica agli allegati, post_max_size viene applicato alla dimensione dell'intera email (inclusi gli allegati). Impostiamo il nostro post_max_size a un valore più alto per evitare blocchi:
|
1 2 3 4 5 6 7 |
. . . ; Dimensione massima dei dati POST che PHP potrà accettare. ; Il suo valore può essere 0 per disabilitare il limite. Viene ignorato se la lettura dei dati POST ; è disabilitata tramite enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 20M . . . |
-
- Imposta il valore func_overload :
Infine, cerca mbstring.func_overload = 0 e decommentalo. Inoltre, assicurati che il suo valore sia impostato su null in modo che supporti le funzioni di stringa multibyte:
|
1 2 3 4 |
. . . . . . mbstring.func_overload = 0 . . . |
Salva tutte le modifiche e poi chiudi il file. Il nostro server è configurato con lo stack LAMP, le dipendenze di Roundcube e la configurazione PHP richiesta. Nel prossimo passo, scaricheremo il software Roundcube, lo installeremo e lo configureremo.
Passo 2: Scarica Roundcube
Vai alla pagina di download di Roundcube, scegli la sezione Versione stabile e sfoglia fino al Pacchetto completo. Quindi, fai clic con il pulsante destro del mouse sul pulsante Download e seleziona Copia indirizzo link. Utilizzando l'indirizzo con wget, scarica il tarball di Roundcube sul server:
|
1 |
wget https://github.com/roundcube/roundcubemail/releases/download/1.5.2/roundcubemail-1.5.2-complete.tar.gz |
Successivamente, dovrai decomprimere l'archivio di Roundcube:
|
1 |
wget tar -xvzf roundcubemail-1.5.2-complete.tar.gz |
Gli argomenti utilizzati potrebbero sembrare confusi, specialmente se sei completamente nuovo. Ecco una spiegazione di cosa significa ciascun flag:
- x: Sta per estrarre.
-
v: Sta per verbose.
- Informa tar di stampare il percorso e i nomi dei file estratti.
-
z: Informa tar di rimuovere il wrapper
tar e decomprimere l'archivio usando gzip.
- L'estensione del file gzip compresso avrà .gz alla fine.
- f: Sta per file.
Ometti lo slash / finale nella directory perché stiamo spostando e rinominando l'intera directory, e non solo il suo contenuto. Ora, spostiamo la directory decompressa in /var/www e rinominiamola come roundcube:
|
1 |
sudo mv roundcubemail-1.5.2 /var/www/roundcube |
Imposta i permessi per Apache per creare e modificare i file di configurazione e dei log. Quindi, cambia il proprietario e il gruppo in www-data. Inoltre, assicurati di consentire i permessi di lettura e scrittura per il proprietario e il gruppo:
|
1 |
sudo chown -R www-data:www-data /var/www/roundcube/ |
|
1 |
sudo chmod 775 /var/www/roundcube/temp/ /var/www/roundcube/logs/ |
Sebbene abbiamo scaricato il codice di Roundcube e impostato i permessi necessari, la nostra installazione è ancora incompleta. Il collegamento di Roundcube al nostro database tramite la GUI di Roundcube deve ancora essere eseguito. Prima di procedere oltre, dobbiamo aggiornare Apache e la sua configurazione per comunicare la posizione di base di Roundcube.
Passo 3: Installazione e configurazione di Apache
In questo passo, modificheremo il file dell'host virtuale per configurare Apache. Utilizzando l'hosting virtuale di Apache, ospiteremo più siti su un singolo server. Anche se Apache ospita un singolo sito, è meno disordinato e più semplice utilizzare un file di configurazione dell'host virtuale rispetto alla modifica della configurazione globale di Apache. Per aggiungere un ulteriore livello di sicurezza, considera di proteggere Apache con Let’s Encrypt.
Ogni .conf file nella cartella /etc/apache2/sites-available/ rappresenta un sito diverso. Creiamo qui un file di host virtuale per Roundcube e informiamo Apache di renderlo disponibile per il browser.
Per prima cosa, copia il file di configurazione predefinito per usarlo come punto di partenza per il nuovo file:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/roundcube.conf |
Apri il file utilizzando l'editor di testo nano:
|
1 |
sudo nano /etc/apache2/sites-available/roundcube.conf |
Ci sono diverse modifiche che dovremo apportare. Esaminiamole una per una, per poi fornire l'intero file da copiare e incollare.
Per prima cosa, modifica le seguenti direttive nell'host VirtualBlock esistente:
-
ServerName: Informa Apache di scegliere il dominio.
- Se stai usando un solo server, allora questo ServerName sarà l'indirizzo IP o il nome di dominio del tuo server.
-
DocumentRoot: Quando arriva il traffico, definisce dove indirizzarlo.
- Nel nostro tutorial, invieremo il traffico a Roundcube in /var/www/roundcube.
- ServerAdmin: In caso di problemi con Apache, ServerAdmin specifica un indirizzo email di contatto.
-
ErrorLog e CustomLog: Definisce dove salvare i log delle connessioni riuscite e i log degli errori per questo sito.
- Usa nomi specifici per definire i log degli errori in modo che, se ci sono problemi specifici del sito, vengano rilevati senza sforzo.
Quindi, aggiungerai un nuovo blocco Directory che informa Apache su cosa fare con la directory di Roundcube. La direttiva Directory è composta da due parole, in cui la prima parola di ogni riga è il nome della configurazione seguito dalle opzioni di configurazione effettive.
- Options -Indexes: Informa Apache di mostrare un avviso se trova un file index.html o index.php mancante. Per impostazione predefinita, mostra il contenuto della directory.
- AllowOverride All: Informa Apache che se viene rilevato un file .htaccess locale, questo deve sovrascrivere le impostazioni globali.
- Order allow,deny: Istruisce Apache a verificare l'accesso del client al sito e a negare quelli che non corrispondono.
- allow from all: Definisce il tipo di client consentiti.
Una volta apportate queste modifiche, vedrai il file in questo modo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<VirtualHost *:80> ServerName your_server_ip_or_domain DocumentRoot /var/www/roundcube ServerAdmin paul@demo.com ErrorLog ${APACHE_LOG_DIR}/roundcube-error.log CustomLog ${APACHE_LOG_DIR}/roundcube-access.log combined <Directory /var/www/roundcube> Options -Indexes AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> |
Salva tutte le modifiche e chiudi il file. Ora, chiediamo ad Apache di interrompere l'hosting del sito predefinito:
|
1 |
sudo a2dissite 000-default |
Successivamente, istruiremo Apache ad avviare l'hosting del sito Roundcube. Quando abiliti il sito, non includere il .conf perché il a2ensite richiede il nome del file senza estensione:
|
1 |
sudo a2ensite roundcube |
Successivamente, imposta su ON il mod_rewrite modulo Apache:
|
1 |
sudo a2enmod rewrite |
Infine, riavvia Apache per abilitare l'accessibilità all'installazione di Roundcube:
|
1 |
sudo apache2ctl restart |
Nell'ultimo passaggio, dobbiamo configurare il database, in modo che Roundcube possa memorizzare e gestire i dati specifici dell'applicazione.
Passaggio 4: Installazione e configurazione di MySQL
Prova ad accedere al tuo server utilizzando l'indirizzo IP o il nome di dominio. Vedrai apparire un errore di configurazione sulla pagina. Qui, Roundcube verifica la presenza di un file generato durante la configurazione, ma la nostra configurazione è incompleta. Prima di impostare la nostra configurazione, prepariamo il nostro database.
- Connettiti a MySQL: Connettiamoci alla shell interattiva di MySQL utilizzando il nome utente e la password:
Una volta eseguito il comando precedente, ti verrà chiesto di autenticarti con la password di root che hai creato durante l'installazione di MySQL.1mysql -u root -p - Crea database e utente: Ora che hai effettuato l'accesso con successo, creiamo un database e un utente del database. Successivamente, concederemo i permessi all'utente per eseguire comandi sul nostro nuovo database.
- Crea il database: Usa il seguente comando per creare un database chiamato
roundcubemail. Successivamente, fornisci le opzioni del database come il set di caratteri da utilizzare
utf8:
MySQL offre una sicurezza robusta e una protezione avanzata. Definisce un utente in base al nome e alla sorgente di connessione. Il comando precedente crea un utente chiamato roundcube e definisce l'utente per connettersi da localhost.1mysql> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; - Rinomina il database: Rinominiamo l'utente e modifichiamo la nostra password:
1mysql> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password'; - Imposta i permessi: Consenti agli utenti roundcube tutti i permessi sul
roundcubemail database e sulle tabelle:
Salva le modifiche ed esci dalla shell interattiva di MySQL:1mysql> GRANT ALL PRIVILEGES ON roundcubemail.* to 'roundcube'@'localhost';
12mysql> FLUSH PRIVILEGES;mysql> EXIT;
Il nostro prossimo passo consiste nel configurare la struttura del database che aiuta Roundcube a salvare tutte le informazioni. Roundcube viene fornito con un file di database che configura i dati automaticamente, il che richiederebbe sforzi faticosi per essere configurato manualmente.
Utilizzando il seguente comando, MySQL utilizzerà il nostro utente appena creato per leggere un file /var/www/roundcube/SQL/mysql.initial.sql. Inoltre, applicherà la configurazione al database roundcubemail:
|
1 |
mysql -u roundcube -p roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql |
Ora ti verrà chiesto di inserire la password dell'utente roundcube. La configurazione del nostro database prepara l'uso di Roundcube e ci consente di verificare i permessi corretti. Se tutti i passaggi sono stati eseguiti con successo, non ci sarà alcun feedback e tornerai al prompt dei comandi. Nel passaggio successivo, comunicheremo a Roundcube le nostre impostazioni e-mail e completeremo l'installazione.
Passaggio 5: Installazione e configurazioni di Roundcube
Se provi ad accedere alla tua installazione di Roundcube ora, otterrai una pagina di errore. Visita http://your_server_ip_or_domain/installer per completare l'installazione.
Se la configurazione è stata eseguita correttamente, vedrai un verde OK a destra di ogni voce. Tuttavia, potresti non vedere il segno OK verde nelle impostazioni LDAP opzionali in MySQL. Se vedi il messaggio NON DISPONIBILE accanto a qualsiasi altra riga, devi installare queste dipendenze non disponibili. Se hai dimenticato di scaricare una delle dipendenze, puoi navigare all'URL e scaricarla subito.
Una volta completata la configurazione, scorri verso il basso e fai clic sul pulsante AVANTI . Vediamo come generare il file di configurazione di Roundcube. Dai un'occhiata alle parti del modulo che dobbiamo modificare.
- Configurazione generale
Ci sono alcune personalizzazioni e alcune impostazioni generali che modificheremo nella sezione di configurazione Generale:
- ip_check: È un'opzione di configurazione della sicurezza e verifica l'IP del client nell'autorizzazione della sessione.
- product_name: Rinomina il nome del prodotto come preferisci. Questo nome mappa "Roundcube" nel testo e viene sostituito con questo nome.
- support_url: Supporto nell'installazione di Roundcube. Se non hai un sito di help desk dedicato, preferisci utilizzare un indirizzo email come walker:paul@demo.com.
- skin_logo: Sostituisci il logo di Roundcube con skin_logo. Per abilitare HTTPS, scegli un'immagine URL HTTPS (178px per 47px).
Lascia le altre impostazioni con i loro valori predefiniti.
- Logging & Debugging: Scegliamo le opzioni predefinite.
- Configurazione del database: Invece di utilizzare esplicitamente la tua posta, Roundcube utilizza MySQL per memorizzare le informazioni per l'esecuzione del client web. Qui dobbiamo indicare a Roundcube di accedere al database che abbiamo configurato nel Passo 4. Utilizza le credenziali del database che abbiamo creato in precedenza:
- Database: MySQL
- Server: localhost
- Nome del database: roundcubemail
- Utente: roundcube
- Password:
demo12345@
- Utilizza la password che hai definito e che abbiamo configurato nel Passo 4.
- Db_prefix: Questo è opzionale a meno che tu non stia utilizzando un database condiviso con altre app.
- Modifica di IMAP: Impostiamo le impostazioni IMAP e SMTP per il tuo server di posta. Poiché questo tutorial si concentra sull'uso di Gmail come esempio, utilizzeremo le impostazioni di Gmail nelle nostre impostazioni IMAP. Tuttavia, se scegli di optare per altri fornitori di servizi come Yahoo o Outlook, devi utilizzare le loro rispettive impostazioni. Molti fornitori di posta elettronica supportano connessioni con o senza crittografia. Normalizza l'uso degli URL e delle porte SSL IMAP/SMTP per evitare di utilizzare connessioni non sicure.
- default_host: ssl://imap.gmail.com
- default_port: 993
- auto_create_user:
Sì ☑
- Se questa opzione è deselezionata, Roundcube non creerà un utente nel proprio database e ti impedirà di accedere.
- Campi *_mbox: Mantieni i valori predefiniti.
- Puoi aggiornarlo in seguito nell'interfaccia utente di Roundcube.
- Modifica di SMTP: Il server SMTP è una parte integrante dell'email che viene utilizzata per inviare email. Similmente alla sezione del server IMAP, utilizzeremo l'URL e la porta SSL. Se non hai esperienza nell'uso dei server SMTP, segui le migliori pratiche SMTP per saperne di più su questo tipo di server. Qui stiamo usando Gmail come esempio:
- campo smtp_server: ssl://smtp.gmail.com
- campo smtp_port: 465
- SMTP e IMAP sono due servizi diversi, pertanto richiedono entrambi un nome utente e una password. Tuttavia, Roundcube ci consente di utilizzare le credenziali IMAP, quindi non è necessario ricrearle. Lascia i campi sotto smtp_user/smtp_pass vuoti e seleziona la casella accanto a Utilizza il nome utente e la password IMAP correnti per l'autenticazione SMTP.
- smtp_log: Sì ☑
- Modifica delle impostazioni di visualizzazione & preferenze utente: Scegliamo le impostazioni di visualizzazione e le preferenze utente predefinite. Se scegli di personalizzare la tua installazione di Roundcube, fai clic sul link RFC1766 nella pagina di configurazione e aggiorna il campo language manualmente.
- Plugin: Roundcube offre il supporto per i plugin che aggiunge ulteriore sicurezza. I plugin sono opzionali, tuttavia puoi sfruttarli per semplificare il tuo lavoro. Diamo un'occhiata all'elenco dei plugin più utilizzati:
- archive: Questo plugin fornisce un pulsante Archivia che è simile al funzionamento di Gmail.
- emoticons: Questo consente l'uso di emoticons nelle email.
- enigma: Semplifica l'uso della crittografia delle email GPG.
- filesystem_attachments: Consente di salvare temporaneamente gli allegati sul server Roundcube quando si salva una bozza di email.
- hide_blockquote: Questo plugin nasconde la parte citata delle email di risposta per mantenere pulita l'interfaccia utente.
- identity_select: Consente all'utente di selezionare più indirizzi email durante la composizione di un'email.
- markasjunk: Questo plugin consente di contrassegnare un'email come spam e spostarla nella cartella Spam.
- newmail_notifier: Ti avvisa delle nuove email utilizzando il sistema di notifiche del browser.
Premi il pulsante UPDATE CONFIG per salvare le impostazioni. Nell'ultimo passaggio, testeremo la configurazione di Roundcube per assicurarci che tutto funzioni correttamente.
Passaggio 6: Testare la configurazione di Roundcube
Una volta aggiornata la configurazione, la pagina si ricaricherà e apparirà un riquadro informativo giallo nella parte superiore della pagina con scritto che Il file di configurazione è stato salvato con successo nella RCMAIL_CONFIG_DIR della tua installazione di Roundcube.
Quindi, fai clic sul pulsante CONTINUE per testare la configurazione. Analogamente alla pagina di controllo delle dipendenze, vedrai un indicatore verde OK su ogni riga, a condizione che non ci siano errori. Se noti degli errori, torna indietro e ricontrolla i dati inseriti.
Inserisci il nome utente e la password IMAP e SMTP rispettivamente nelle sezioni Test SMTP config e Test IMAP config per testare il resto della configurazione. Allo stesso modo, fai clic su Send test email e Check login. Se hai seguito correttamente tutti i passaggi, la pagina si ricaricherà e vedrai il segno verde OK sotto la sezione testata.
Dopo aver verificato che sia le connessioni SMTP che IMAP funzionino correttamente, il passaggio successivo consiste nel rimuovere la directory dell'installer utilizzando SSH. Rimuovere la directory dell'installer è un modo sicuro per impedire ad altri di generare una nuova configurazione e sovrascrivere le impostazioni corrette:
|
1 |
sudo rm -rf /var/www/roundcube/installer/ |
Infine, puoi accedere all'istanza di Roundcube utilizzando l'IP del tuo server e verificare la tua email.
Conclusione
In questo tutorial abbiamo imparato a installare un client webmail utilizzando Roundcube su Ubuntu 20.04. Oltre ai passaggi descritti sopra, ci sono altre opzioni di sicurezza come il supporto HTTPS e la crittografia GPG che dovresti considerare di aggiungere. Assumiti la responsabilità di proteggere i tuoi server utilizzando misure di sicurezza robuste.
Inoltre, ci sono molti altri materiali di apprendimento su Redis e PHP a cui puoi accedere dai nostri blog:
- Come installare e proteggere Redis su Ubuntu 18.04
- Installazione di phpBB su Ubuntu 20.04
- Installazione e protezione di phpMyAdmin su Ubuntu 18.04
- Distribuire un'applicazione PHP su un cluster Kubernetes con Ubuntu 18.04
Buon divertimento con l'informatica!
Commenti
Ancora nessun commento. Scrivi il primo.