- Repository ufficiale: http://plugins.roundcube.net/
I plugin che ho abilitato sono (al momento):
- Password, per cambiare la password utente
- qmailforward, sostituisce il plugin forward di managesieve al fine di gestire i forward di
qmail
attraversovpopmail/valias
- ManageSieve, che scrive gli script per filtrare le email in arrivo (rigetto, spostamento in una cartella specifica, etc.). Notare che per usare questo è necessario aver abilitato Dovecot managesieve.
Questo plugin contiene delle interfacce per la gestione esplicita del messaggio di "fuori ufficio". - SpamAssassin User Prefs SQL (sauserprefs),
- che consente all'utente di caricare su database SQL le prefenze su come Spamassassin deve filtrare la sua posta, creando ad esempio una black list.
- Markasjunk, un plugin che consente di aggiungere con un click nel bottone "Marca come spam" l'indirizzo e-mail del mittente alla propria blacklist, o viceversa, o lanciare un comando come sa_learn.
- Context Menu. Aggiunge un menu di dialogo alla lista dei messaggi, attivabile con il tasto destro, che comprende tra le altre cose la lista delle cartelle, la rubrica, il marcamento come letto/non letto, cancella, rispondi e inoltra.
- NewMail_notifier. Può notificare le nuove mail in tre modi: focalizzando la finestra del browser e cambiandone l'icona, riproducendo un suono, oppure mostrando la notifica sul desktop (via webkitNotifications).
- Persistent login, che fornisce la funzionalità "Mantienimi loggato" per Roundcube.
- ZipDownload, che aggiunge una opzione per scaricare tutti gli allegati a un messaggio in un singolo file zip, quando un messaggio ha allegati multipli.
- Enigma, che fornisce il supporto per la visualizzazione e l'invio di messaggi firmati e/o criptati in formato PGP (RFC 2440) e PGP/MIME (RFC 3156).
- swipe, che aggiunge le azioni di trascinamento destra/sinistra/giù alla lista dei messaggi nei dispositivi touch (tablet/cellulari).
- Attachment reminder ricorda all'utente di allegare i file.
Altri plugin che ho usato in passato per i quali la documentazione potrebbe non essere più valida
- rcguard.Questo plugin registra i tentativi di accesso falliti e presenta una verifica reCAPTCHA dopo un certo numero di accessi falliti.
- autologon. Esegue il login da una pagina esterna (CMS)
- logout_redirect. Versione modificata per redirigere alla home page dopo il logout
- carddav. CardDav client. Può sincronizzare la rubrica con un server CardDav server come
owncloud
oSoGO
.
Per abilitare un plugin è necessario includerlo in $config['plugins']
nel file di configurazione in questo modo:
$config['plugins'] = array( 'password', 'managesieve', 'qmailforward', 'sauserprefs', 'markasjunk', 'contextmenu', 'newmail_notifier', 'zipdownload', 'persistent_login', 'enigma', 'swipe', 'attachment_reminder' }
Gestire i plugin con composer
Alcuni dei plugin menzionati sopra sono rilasciati insieme a Roundcube
, ovvero sono già presenti nella cartella plugin e vanno solo abilitati, mentre gli altri possono essere facilmente installati da https://plugins.roundcube.net/ via composer
. Per imparare rapidamente come usare composer
dare uno sguardo alla home page del sito, dove si può trovare una guida veloce.
Installiare composer
Installare come segue se composer.phar
non è già installato
cd /var/www/roundcube chown -R root:apache . wget https://getcomposer.org/composer-stable.phar mv composer-stable.phar composer.phar chown apache:apache composer.phar chmod +x composer.phar mkdir -p /var/www/.composer chown -R apache:apache /var/www/.composer
Dal momento che composer
deve essere lanciato da apache,
è necessario assegnare i privilegi di scrittura nelle cartelle che apache
dovrà sovrascrivere.
mkdir -p /srv/httpd chown -R apache:apache /srv/httpd touch composer.lock chown apache:apache composer.lock composer.phar chmod -R g+w plugins vendor composer.lock
Usare composer
In due parole, è sufficiente aprire il file composer.json
e aggiungere una riga come questa per ogni plugin che si intende installare, navigabile su https://plugins.roundcube.net:
"require" : { ..., "roundcube/rcsample": ">=0.2.0" }
Questo è la sezione del mio file composer.json
che è necessaria per installare i plugin descritti sotto:
"require": { ............... "sagredo-dev/qmailforward": ">=1.0.3", "johndoh/contextmenu": ">=3.3.1", "johndoh/swipe": ">=0.5" }
Lanciare composer
con l'utente apache
per aggiornare e installare:
cd /var/www/roundcube sudo -u apache php composer.phar update
Password
- Nome del plugin: password
Questo plugin è rilasciato da Roundcube, quindi è già installato. E' ora possibile usare, oltre che il driver vpopmaild
, anche il driver sql
(grazie a John D. Trolinger).
E' consigliabile applicare questa patch di Tony Fung che permette al programma di fare una chiamata alla libreria cracklib
(da installare preventivamente come già fatto per qmailadmin
). In questo modo sia qmailadmin che Roundcube condividono lo stesso meccanismo di rafforzamento della password.
cd /var/www/roundcube wget https://notes.sagredo.eu/files/qmail/patches/roundcube/cracklib-roundcube_pwd_plugin.patch patch -p1 < cracklib-roundcube_pwd_plugin.patch
NB: è necessario rimuovere exec
da disable_functions
dal proprio php.ini
perchè la patch possa funzionare.
Driver vpopmalid
# cd plugins/password # cp -p config.inc.php.dist config.inc.php # nano config.inc.php $config['password_driver'] = 'vpopmaild'; // Determine whether current password is required to change password. // Default: false. $config['password_confirm_current'] = true; // Require the new password to be a certain length. // set to blank to allow passwords of any length $config['password_minimum_length'] = 8; // Require the new password to contain a letter and punctuation character // Change to false to remove this check. $config['password_require_nonalpha'] = true; // vpopmaild Driver options // ----------------------- // The host which changes the password $config['password_vpopmaild_host'] = 'your-IP'; // TCP port used for vpopmaild connections $config['password_vpopmaild_port'] = 89;
Driver sql
// We have MYSQL for our VPOPMAIL DATABASE so we use the sql driver $config['password_driver'] = 'sql'; // SQL Driver options // ------------------ // PEAR database DSN for performing the query. By default // Roundcube DB settings are used. // We have a VPOPMAIL DB and the database and table name is vpopmail $config['password_db_dsn'] = 'mysql://vpopmail:YOURPASSWORDGOESHERE@[mysql-IP]/vpopmail'; // The username and domainname are different columns JDT $config['password_query'] = 'UPDATE vpopmail set pw_passwd=ENCRYPT(%p,concat("$1$",right(md5(rand()),8 ),"$")), pw_clear_passwd=%p where pw_name=%l and pw_domain=%d'; // VPOPMAIL uses salted hash so md5 JDT $config['password_crypt_hash'] = 'md5';
qmailforward
- Github v. 1.0.2
- By Roberto Puzzanghera
- Installed via
composer
: sagredo-dev/qmailforward - Maggiori informazioni qui
Questo plugin aggiunge la possibilità per gli utenti qmail
di gestire il loro reinoltro dall'interno di Roundcube
senza bisogno di all'amministratore del dominio che lo faccia attraverso qmailadmin.
Esso salva i forward su database MySQL
nella tabella vpopmail.valias
. Diversamente dal plugin managesieve, dal quale ha preso ispirazione ma che solo apparentemente si comporta allo stesso modo, qmailforward utilizza le regole sieve
ma salva i forward su database, preservando anche la possibilita di salvare una copia dei messaggi nella mailbox. In questo caso l'esecuzione di un delivery agent a scelta è possibile.
L'utilizzo di questo metodo consente a qmail
di rispettare le policy SPF
.
Configurare come segue:
cd plugins/qmailforward cat > config.inc.php << __EOF__ // qmailforward database settings $config['qmailforward_db_dsnw'] = 'mysqli://vpopmail:password@localhosy/vpopmail'; __EOF__
Copiare dal file config.inc.dist.php into config.inc.php le impostazioni che si intende sovrascrivere rispetto al file di configurazionedi default, che viene comunque caricato. E' necessario inserire almeno le credenziali di accesso al database, che sono quelle contenute in ~vpopmail/etc/vpopmail.mysql.
NB: Questo plugin funziona con l'opzione di configurazione di vpopmail
--enable-valias
. Per usarlo insieme alle sieve
rule dare una occhiata qui.
Il supporto nella traduzione di questo plugin è gradito. E' sufficiente scaricare un file dalla cartella localization, tradurlo nella propria lingua e inviarlo via mail usando il bottone contatti.
Managesieve
Writes sieve scripts to filter the incoming mails (reject, move to a specific folders etc.). Note that to use this you must have Dovecot managesieve enabled.
- Nome del plugin: managesieve
- Richiede: Dovecot Pigeonhole
- Fornito da RoundCube
cd /var/www/roundcube/plugins cd managesieve cp -p config.inc.php.dist config.inc.php
Modificare come segue il file di configurazione (ricordare che la porta del server dovecot-managesive è ora 4190, 2000 è obsoleta)
$config['managesieve_port'] = 4190; $config['managesieve_host'] = 'your-server-IP'; // Enables separate management interface for vacation responses (out-of-office) $config['managesieve_vacation'] = 1; // Enables separate management interface for setting forwards (redirect to and copy to) $config['managesieve_forward'] = 1;
E questo è ciò che dovresti vedere nel log di dovecot con un semplice filtro per redirect
Oct 22 00:03:13 lda(test@yourdomain.net): Info: sieve: msgid=<c3445037f979a8cb793df1f858b7a4f9@somedomain.com>: forwarded to <someone@somewhere.net>
Si ricordi che, per rendere operative le regole sieve, è necessartio settare il file .qmail almeno per l'utente o per l'intero dominio come espiegato prima nella pagina sieve su Dovecot, altrimenti la LDA sarà vpopmail invece di Dovecot e le sieve sieve rule saranno ignorate.
E dopo molti anni di utilizzo di RoundCube sono finalmente benutoa conoscenza del fatto che questo plugin mette a disposione una interfaccia esplicite per la gestione del messaggio di "fuori ufficio":
Questo plugin mette a disposizione una variante dello stesso per gestire i forward con le sieve
rules. Nel caso si stia valutando di utilizzarlo suggerisco di riferirsi invece al plugin qmailforward, che fa lo stesso senza invalidare l'SPF
e la firma DKIM
dei propri messaggi.
SpamAssassin-User-Prefs-SQL
- Scaricare da qui:
- Richiede Spamassassin Userprefs
- Installabile via github: johndoh / roundcube-sauserprefs
Dopo aver fatto la migrazione a spamassassin
v.4 è necessario usare la versione 1.20.1, che ancora non è disponibile via composer
. Bisogna quindi scaricarla da github
e installarla a mano:
cd /var/www/roundcube/plugins wget https://github.com/johndoh/roundcube-sauserprefs/archive/refs/tags/1.20.1.tar.gz tar xzf 1.20.1.tar.gz mv roundcube-sauserprefs-1.20.1/ sauserprefs cd sauserprefs mv config.inc.php.dist config.inc.php
Modificare il file di configurazione:
$config['sauserprefs_db_dsnw'] = 'mysqli://spamassassin:[PASSWORD]@[mysql-IP]/spamassassin'; $config['sauserprefs_sav4'] = true;
Se l'estensione 'mysqli
' non è disponibile nel vostro php usare 'mysq
' l nell'ultima stringa qui sopra.
Se si è appena fatto l'aggiornamento a spamassassin
v.4 è necessario dare un'occhiata alle informazioni sulla migrazione e le modifiche necessarie anche in relazione a questo plugin.
Il test della funzionalità userprefs di spamassassin
è stato spiegato in questa pagina. Ora dobbiamo controllare che sia stato correttamente inserito/modificato il record nella tabella userprefs del DB spamassassin.
MarkAsJunk
Aggiunge l'indirizzo del mittente alla blacklist, oppure lancia un comando come ad esempio sa_learn.
- Fornito da
Roundcube
- Nome del plugin: markasjunk
Creare il file di configurazione a partire dal file modello:
cp config.inc.php.dist config.inc.php
driver sa_blacklist
- Richiede
spamassassin-user-prefs plugin
eSpamassassin Userprefs
.
E' sufficiente cliccare sul bottone "Segnala come Spam" per creare un nuovo record "Black_list from" nel database e spostare il messaggio nella cartella Spam, contrassegnandolo (volendo in automatico) come già letto. Per i messaggi che sono finiti erroneamente nello Spam, si può cliccare bottone "Non è spam" per creare un nuovo record "White_list from" nel database.
Per usare il plugin con il driver sa_blacklist
settare il file di configurazione in questo modo:
$config['markasjunk2_learning_driver'] = 'sa_blacklist';
Il driver cmd_learn
seguente non dovrebbe essere più utilizzato, dato che il compito di gestire il sistema di learning e reporting è ora affidato a un cronjob script (maggiori informazioni qui).
driver cmd_learn
- Grazie a Gabriel Torres per i suggerimenti riguardanti questa parte del setup
Questo driver consente di processare il messaggio con un comando o uno script eseguito da shell. Nel nostro caso eseguiremo sa_learn
e spamassassin
uno dopo l'altro.
Tenere presente che, perchè php
sia in grado di eseguire comandi dalla shell, è necessario rimuovere eventualmente shell_exec
dagli argomenti dell'opzione disable_functions
nel file
.php.ini
Preparare lo script con i comandi che devono essere eseguiti quando si clicca sul tasto "Marca come spam". Salvare nello script /usr/local/bin/teach_spam.sh
il seguente codice
cat > /usr/local/bin/teach_spam.sh << __EOF__ #!/bin/bash /usr/local/bin/sa-learn --spam -u$1 $2 >> /var/log/spamassassin/sa_learn.log 2>&1 /usr/local/bin/spamassassin -x -r < $2 >> /var/log/spamassassin/spamassassin.log 2>&1 __EOF__
Il primo comando dà la mail in pasto a SpamAssassin
, consentendogli di 'imparare' quali sono i segni di un messaggio spam. Il secondo invia la segnalazione come spam to Razor
, Pyzor
e Spamcop
.
Preparare ora lo script con i comandi che devono essere eseguiti quando si clicca sul tasto "Marca come non spam". Salvare nello script /usr/local/bin/revoke_spam.sh
il seguente codice
cat > /usr/local/bin/revoke_spam.sh << __EOF__ #!/bin/bash /usr/local/bin/sa-learn --ham -u$1 $2 >> /var/log/spamassassin/sa_learn.log 2>&1 /usr/local/bin/spamassassin -x -k < $2 >> /var/log/spamassassin/spamassassin.log 2>&1 __EOF__
Anche primo comando dà la mail in pasto a SpamAssassin
, consentendogli di 'imparare' quali sono i segni di un messaggio spam e quali invece no. Il secondo revoca la segnalazione da Razor
. A quanto sembra non è invece possibile revocare le segnalazioni a Pyzor
e Spamcop
.
Fornire i privilegi di esecuzione agli script appena creati
chmod +x /usr/local/bin/teach_spam.sh /usr/local/bin/revoke_spam.sh
Aggiungere queste opzioni al file di configurazione
$config['markasjunk_learning_driver'] = 'cmd_learn'; $config['markasjunk_spam_cmd'] = '/usr/local/bin/teach_spam.sh %u %f'; $config['markasjunk_ham_cmd'] = '/usr/local/bin/revoke_spam.sh %u %f';
Creare il file logrotate per i log file precedenti
cat > /etc/logrotate.d/spam_reports << __EOF__ /var/log/spamassassin/spamassassin.log /var/log/spamassassin/sa_learn.log { su root apache rotate 5 daily missingok notifempty delaycompress create 664 root apache sharedscripts } __EOF__
E' necessario assegnare i privilegi +w
ad apache
nella cartella log, visto che Roundcube
è eseguito da apache
.
chgrp apache /var/log/spamassassin chmod g+w /var/log/spamassassin chmod 640 /etc/mail/spamassassin/.razor/identity-* chmod 644 /etc/mail/spamassassin/.razor/razor-agent.log
driver multi_driver
- Driver originale del vecchio plugin
markasjunk2
multi_driver
modificato permarkasjunk
(diff qui)
E' possibile lanciare più di un driver al click sul bottone che marca il messaggio come spam/ham. Ho modificato la versione originale di Philip Weir per farla funzionare con il plugin markasjunk
ora in uso su Roundcube e perchè lanci sia sa_blacklist
che cmd_learn
.
Installare come segue:
cd /var/www/roundcube/plugins/markasjunk/drivers wget https://notes.sagredo.eu/files/qmail/patches/roundcube/markasjunk-multi_driver/multi_driver.txt mv multi_driver.txt multi_driver.php
Impostare il driver corretto nel file di configurazione:
$config['markasjunk_learning_driver'] = 'multi_driver';
NB: il driver multi_driver
, quando abilitato, sembra impedire la visualizzazione delle immagini allegate. Il motivo di ciò non mi è noto, ma è una cosa che si può verificare, per lo meno con la versione 1.4 das me utilizzata nel luglio 2021. E' gradito ogni commento al riguardo.
Context Menu
Aggiunge un menu di dialogo alla lista dei messaggi, attivabile con il tasto destro, che comprende tra le altre cose la lista delle cartelle, la rubrica, il marcamento come letto/non letto, cancella, rispondi e inoltra.
- Installato via
composer
johndoh/contextmenu - Nome del plugin: contextmenu
Nessuna configurazione è richiesta.
swipe
- Installato via
composer
johndoh/swipe - Nome del plugin: swipe
Questo plugin aggiunge azioni al trascinamento verso sinistra/destra/giù dell lista dei messaggi nei dispositivi touch (tablet/cellulari).
Sfortunatamente questoplugin non ha un file config, per cui è necessario aggiungere le opzioni di configurazione al file di configurazione principale di RoundCube
.
Ecco ciò che ho aggiunto io. Dare una occhiata al file README per scoprire quali sono le varie azioni diponibili.
$config['swipe_actions'] = [ 'messagelist' => [ 'left' => 'delete', 'right' => 'reply-all', 'down' => 'checkmail' ], 'contactlist' => [ 'left' => 'compose', 'right' => 'compose', 'down' => 'vcard_attachments' ] ];
newmail_notifier
Supporta tre metodi di notifica:
- Basic - focalizza la finestra del browser e cambia la favicon
- Sound - riprodice un suono wav
- Desktop - mostra la notifica sul desktop (usando webkitNotifications, supportato da Chrome e Firefox con 'HTML5 Notifications' plugin)
- Fornito da Roundcube
- Nome del plugin: newmail_notifier
E' sufficiente abilitarlo rinominando il file config...
cd plugins/newmail_notifier cp config.inc.php.dist config.inc.php
...e scegliendo il metodo di notifica desiderato:
// Enables basic notification $config['newmail_notifier_basic'] = true; // Enables sound notification $config['newmail_notifier_sound'] = true; // Enables desktop notification $config['newmail_notifier_desktop'] = false;
Persistent login
- Home page: https://github.com/mfreiholz/persistent_login
- Nome del plugin: persistent_login
Fornisce un tasto "Mantienimi loggato" nel form di login di Roundcube.
Sfortunatamente questo plugin non è installabile via composer
. Vari fork di questo plugin compatibili con composer
esistono e ne ho usato uno in passato senza molto successo, a causa di frequenti disconnessioni.
Installiamo quindi a mano
wget -O persistent_login-5.3.0.tar.gz https://github.com/mfreiholz/persistent_login/archive/refs/tags/version-5.3.0.tar.gz tar xzf persistent_login-5.3.0.tar.gz mv persistent_login-version-5.3.0 persistent_login chown -R apache:apache persistent_login
Dai miei test il driver sql è preferibile a quello basato sui cookies, con il quale ho talvolta anche qui sperimentato delle disconnessioni. Abilitiamo quindi il driver sql nel file config:
cd persistent_login mv config.inc.php.dist config.inc.php
Impostiamo l'uso del token nel config file
$config['ifpl_use_auth_tokens'] = true;
Ne ho anche approfittato per rinominare la variabile php
$rcmail_config
a $config
dappertutto, dato che $rcmail_config
è ora obsoleto in RoundCube
.
Infine, se questa è una nuova installazione del plugin, è necessario creare la tabella MySQL
nel database roundcube
. Il codice sql può anche essere trovato nel file sql/mysql.sql:
USE roundcube; CREATE TABLE IF NOT EXISTS `auth_tokens` ( `token` varchar(128) NOT NULL, `expires` datetime NOT NULL, `user_id` int(10) UNSIGNED NOT NULL, `user_name` varchar(128) NOT NULL, `user_pass` varchar(128) NOT NULL, `host` varchar(255) NOT NULL, PRIMARY KEY (`token`), KEY `user_id_fk_auth_tokens` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `auth_tokens` ADD CONSTRAINT `auth_tokens_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE;
Zip download
- Fornito da RoundCube
- Nome del plugin: zipdownload
Aggiunge una opzione per scaricare tutti gli allegati a un messaggio in un singolo file zip, quando un messaggio ha allegati multipli. Supporta i formati mbox e maildir.
Rinominare il modello del file config e personalizzare le poche opzioni a proprio piacimento. Io ho lasciato le opzioni predefinite.
mv config.inc.php.dist config.inc.php
Enigma
- Fornito da
Roundcube
- Maggiori informazioni qui
- Prerequisiti:
gpg
(gnupg
andlibgpg-error
onSlackware
systems)
Aggiornamento: dai miei test sembra che sia necessario aggiornare Crypt_GPG
alla versione 1.6.2
Questo plugin fornisce il supporto per la visualizzazione e l'invio di messaggi firmati e/o criptati in formato PGP (RFC 2440) e PGP/MIME (RFC 3156). Il plugin usa binari gpg sul server e memorizza tutte le chiavi (incluse quelle private degli utenti) sul server. Il criptaggio e il decriptaggio viene fatto lato server. Pertanto questo plugin è per gli utenti che ripongono fiducia nel server stesso.
Creaiamo il file di configurazione
cd /var/www/roundcube/plugins/enigma cp -p config.inc.php.dist config.inc.php
Per default chiavi sono memorizzate nella directory enigma/home
dir. Noi impostiamo questa directory in modo che non sia accessibile via web, assegnando ad apache i privilegi di scrittura in questa cartella
mkdir -p /var/www/roundcube-enigma-home chown -R root:apache /path/to/roundcube-enigma-home chmod -R g+w /var/www/roundcube-enigma-home
Modifichiamo ira la configurazione di apache al fine di assegnare i privilegi di accesso alla directory appena creata
Require all granted
Non dimentichiamo di riavviare apache a questo punto
apachectl restart
Ora è necessario modificare il file di configurazione di enigma per far si che venga puntata la home dir appena creata
$config['enigma_pgp_homedir'] = '/var/www/roundcube-enigma-home';
Il plugin enigma richiede che la libreria Crypt_GPG sia installata esattamente in /var/www/roundcube/plugins/enigma/lib/Crypt_GPG
. Considerato il fatto che roundcube resetta la variabile di php include_path
(che nel php.ini
è settata a /path/to/php/lib
), se si decide di installare questa libreria mediante l'uso di pear
si otterrà un "Server error". Per evitare questo scarichiamo e installiamo manualmente la libreria
cd /var/www/roundcube/plugins/enigma/lib wget http://download.pear.php.net/package/Crypt_GPG-1.6.2.tgz tar xzf Crypt_GPG-1.6.2.tgz ln -s Crypt_GPG-1.6.2/Crypt chown -R root:apache Crypt*
Il setup dei cerrtificati è semplice e intuitivo. Referirsi a questa pagina per vedere come fare.
Attachment reminder
- Rilasciato da
Roundcube
- Nome del plugin: attachment_reminder
Un plugin che ricorda all'utente di allegare i file. E' necessario abilitarlo attraverso Preferenze->Composizione messaggi.
Altri plugin
Lascio qui la documentazione non aggiornata di alcuni plugin che ho usato in passato, nel caso possa tornare utile a qualcuno.
rcguard
Questo plugin registra gli accessi falliti e richiede agli utenti una verifica reCAPTCHA dopo un certo numero di tentativi. Ciò aumenta la protezione contro attacchi da parte di automi.
- Info: https://github.com/pbiering/roundcube-rcguard
- Installabile via
composer
mv config.inc.php.dist config.inc.php
E' necessario ottenere una chiave da http://www.google.com/recaptcha. Copiare la chiave nel file di configurazione:
> nano config.inc.php // Public key for reCAPTCHA $config['recaptcha_publickey'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Private key for reCAPTCHA $config['recaptcha_privatekey'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
Creare ora latabella mysql dove salvare il registro degli accessi falliti. Gli IP sono cancellati dopo un po' di tempo.
> mysql -u root -p mysql> use roundcube; CREATE TABLE `rcguard` ( `ip` VARCHAR(40) NOT NULL, `first` DATETIME NOT NULL, `last` DATETIME NOT NULL, `hits` INT(10) NOT NULL, PRIMARY KEY (`ip`), INDEX `last_index` (`last`), INDEX `hits_index` (`hits`) ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; quit;
E questo è tutto. La verifica captha sarà presentata dopo 5 tentativi falliti. Naturalmente si può variare questo parametro nell file di configurazione.
Sono disponibili diversi temi e traduzioni del recaptcha. E' sufficiente editare il file rcguard.js
. Per la documentazione si veda https://developers.google.com/recaptcha
autologon
Consente il login da un form esterno (CMS)
- Installato con Roundcube
E' necessario adattare il plugin di default messo a disposizione a livello di esempio dallo stesso Thomas Bruederli:
<?php /** * Sample plugin to try out some hooks. * This performs an automatic login if accessed from localhost * * @license GNU GPLv3+ * @author Thomas Bruederli */ class autologon extends rcube_plugin { public $task = 'login'; function init() { $this->add_hook('startup', array($this, 'startup')); $this->add_hook('authenticate', array($this, 'authenticate')); } function startup($args) { $rcmail = rcmail::get_instance(); // change action to login if (empty($_SESSION['user_id']) && !empty($_POST['_autologin']) && $this->is_localhost()) $args['action'] = 'login'; return $args; } function authenticate($args) { if (!empty($_POST['_autologin']) && $this->is_localhost()) { $args['user'] = $_POST['_user']; $args['pass'] = $_POST['_pass']; $args['host'] = '[localhost | mail-server-IP]'; $args['cookiecheck'] = false; $args['valid'] = true; } return $args; } function is_localhost() { return true; // return $_SERVER['REMOTE_ADDR'] == '::1' || $_SERVER['REMOTE_ADDR'] == '127.0.0.1'; } }
Nella pagina html del proprio CMS si può usare un form come questo:
<form name="form" action="http://your.webmail.url/" method="post"> <input type="hidden" name="_action" value="login" /> <input type="hidden" name="_task" value="login" /> <input type="hidden" name="_autologin" value="1" /> <table> <tr> <td>Utente</td> <td><input name="_user" id="rcmloginuser" autocomplete="off" value="" type="text" /></td> </tr> <tr> <td>Password</td> <td><input name="_pass" id="rcmloginpwd" autocomplete="off" type="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Login" /></td> </tr> </table> </form>
logout_redirect
Questo plugin non è stato testato con Roundcube 1.4.1.
Se si è installato l'autologon plugin quest'altro può essere utile per redirigere gli utenti alla home page del proprio sito una volta fatto il logout.
- Info: http://www.std-soft.com/bfaq/52-cat-webmail/105-logout-redirect-fuer-roundcube.html (tedesco)
- Scarica la copia in locale
cd /var/www/roundcube/plugins wget https://notes.sagredo.eu/files/qmail/tar/RC-plugins/logout_redirect_rc0.5_v1.2-MN.tar.gz tar xzf logout_redirect_rc0.5_v1.2-MN.tar.gz cd logout_redirect chown -R root.apache logout_redirect chmod -R o-rx logout_redirect
Il plugin logout_redirect deve essere l'ultimo della lista dei plugin in main.inc.php altrimenti i successivi non vengono eseguiti.
Modificare in questo modo il file config.inc.php all'interno della cartella config del plugin stesso:
$config['logout_redirect_url'] = 'http://www.yoursite.net';
CardDav
Questo è un plugin che può servire per sincronizzare la rubrica con un server CardDAV come ownCloud o SoGO.
Questo plugin non è stato testato con la versione 1.4 di Roundcube.
Maggiori informazioni qui: http://www.benjamin-schieder.de/carddav.html
cd /var/www/roundcube/plugins GIT_SSL_NO_VERIFY=true git clone https://github.com/blind-coder/rcmcarddav carddav cd carddav chown root:root .
Installare le dipendenze tramite composer
:
curl -sS https://getcomposer.org/installer | php php composer.phar install
Ora è necessario installare le tabelle del datadase tramite il file opportuno salvato nella sottocartella dbmigrations/0000-dbinit/
.
Dopodichè è possibile configurare la rubrica. Se si usa un server ownCloud, queste sono le impostazioni:
Per i mobile Android la migliore applicazione è CardDAV.
Risoluzione dei problemi
Se si incorre in un errore curl
del genere quando si scaricano le dipendenze
All settings correct for using Composer PHP Warning: failed loading cafile stream: `/etc/ssl/certs/cacert.pem' in - on line 762 PHP Warning: file_get_contents(): Failed to enable crypto in - on line 762 PHP Warning: file_get_contents(https://getcomposer.org/versions): failed to open stream: operation failed in - on line 762 PHP Warning: Invalid argument supplied for foreach() in - on line 508 None of the 0 stable version(s) of Composer matches your PHP version (5.6.21 / ID: 50621)
è necessario installare un certificato:
cd /etc/ssl/certs wget --no-check-certificate http://curl.haxx.se/ca/cacert.pem
e dire a php
dove è stato installato modificando il proprio php.ini
openssl.cafile=/etc/ssl/certs/cacert.pem
Commenti
Errore cambio password vpopmail (5.4.32) roundcube (1.2.3)
Davide Marchi 18 gennaio 2017 16:08 CET
Ciao Roberto ti scrivo per ringraziarti per l'ottimo lavoro e per chiederti se puoi aiutarmi in un problema su cambio password con roundcube (1.2.3) e vpopmail backend (5.4.32) in pratica se cerco di utilizzare dei caratteri speciali per generare la password Roundcube mi rilascia un errore "impossibile salvare la password" e non prosegue.
Rispondi | Permalink
non saprei... leggendo
roberto puzzanghera Davide Marchi 18 gennaio 2017 22:29 CET
non saprei... leggendo velocemente il codice (non ho avuto molto tempo) ho visto che i caratteri debbono essere compresi nel set di caratteri definiti dal parametro password_charset, che per default è ISO-8859-1, ma immagino che i caratteri che stai usando non siano al di fuori di questo set...
Rispondi | Permalink
errore sieverules
Fabrizio 2 maggio 2012 16:52 CET
Per prima cosa complimenti, ho trovato la soluzione ai miei dubbi grazie al tuo blog.
Ho un problema con sieverules, l'ho configurato come da tue indicazioni, ho portato le modifiche nei file 15-lda.conf, 20-managesieve.conf e 90-sieve.conf ma quando entro in roundcube, impostazioni, filtri dovecot mi restituisce l'errore
May 02 16:24:06 managesieve(1234@fabrizio.intra): Error: sieve-storage: userdb(1234@fabrizio.intra) didn't return a home directory or sieve script location
May 02 16:24:06 managesieve(1234@fabrizio.intra): Fatal: Failed to open Sieve storage.
Mi sai dire dove sbaglio?
La configurazione che uso è postfix + dovecot + ldap su una centos 6.2
Rispondi | Permalink
uh.. non sono un esperto di
roberto puzzanghera Fabrizio 2 maggio 2012 21:25 CET
uh.. non sono un esperto di postfix.. ad ogni modo hai provato a vedere se il server sieve risponde?
Rispondi | Permalink
Funziona, è ok, mi
Fabrizio roberto puzzanghera 3 maggio 2012 17:32 CET
Funziona, è ok, mi restituisce:
Il problema credo che sia legato al plugin, lancio una tail -f /var/log/dovecot e quando clicco su "filtri" compare l'errore. Non ne vengo fuori.
Rispondi | Permalink
devi avere qualche problema
roberto puzzanghera Fabrizio 3 maggio 2012 17:40 CET
devi avere qualche problema con lo userdb che non riesce a passare la home dir dove salvare lo script.. ma qui non posso essere di aiuto.. le cartelle inbox, sent ecc vengono viste con la webmail?
Rispondi | Permalink
Risolto
Fabrizio roberto puzzanghera 5 ottobre 2012 11:12 CET
Ciao Roberto, anche se a distanza di 6 mesi mi sembra corretto chiudere il cerchio, ho risolto in questo modo:
nella configurazione del dovecot.conf non gradisce
e ho specificato la path assoluta della maildir_location:
Grazie per l'aiuto e per la guida
Rispondi | Permalink