Kategorie:Roundcube/Plugin: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Roundcube/Plugin'''
== Beschreibung ==
== Installation ==
# apt '''install roundcube-plugins roundcube-plugins-extra'''
=== Managing plugins via composer ===
[[Roundcube/Plugin/composer]]
== Aktivierung ==
'''/var/lib/roundcube/config/config.inc.php'''
$config['plugins'] = array("plugin1", "plugin2", "plugin3", ...
To enable a plugin you have to include it in <code>$config['plugins']</code> in such a way
$config['plugins'] = array(
        'password',
        'managesieve',
        'sauserprefs',
        'markasjunk',
        'contextmenu',
        'newmail_notifier',
        'zipdownload',
        'persistent_login',
        'enigma',
        'swipe'
 );
== Übersicht ==
'''/var/lib/roundcube/plugins'''
{| class="wikitable sortable options"
|-
! Plugin !! Beschreibung
|-
| help ||
|-
| hide_blockquote ||
|-
| html5_notifier ||
|-
| http_authentication ||
|-
| identicon ||
|-
| identity_select ||
|-
| jqueryui ||
|-
| keyboard_shortcuts ||
|-
| krb_authentication ||
|-
| listcommands ||
|-
| [[Roundcube/Plugin/managesieve |managesieve]] || which writes sieve scripts to filter the incoming mails (reject, move to specific folders etc.). Note that in order to use it you must have ''Dovecot managesieve'' enabled. It contains "Out of office" and "Forwarding".
|-
| [[Roundcube/Plugin/markasjunk | markasjunk]] || You can add the sender's email address to the blacklist, or run a command such as sa_learn. Requires ''sauprefs''.
|-
| message_highlight ||
|-
| [[Roundcube/Plugin/newmail notifier | newmail_notifier]] || can notify new mail focusing browser window and changing favicon, playing a sound and  displaying desktop notification (using webkitNotifications feature).
|-
| new_user_dialog ||
|-
| new_user_identity ||
|-
| [[Roundcube/Plugin/password | password]] || change the user's password
|-
| redundant_attachments ||
|-
| sauserprefs || SpamAssassin User Prefs SQL (sauserprefs), which writes the ''spamassassin user preferences'' in the DB. The user will be allowed to create a black/white list, to adjust the ''required_score'' and so on.
|-
| show_additional_headers ||
|-
| squirrelmail_usercopy ||
|-
| subscriptions_option ||
|-
| thunderbird_labels ||
|-
| userinfo ||
|-
| vcard_attachments ||
|-
| virtuser_file ||
|-
| virtuser_query ||
|-
| zipdownload || which adds an option to download all attachments to a message in one zip file, when a message has multiple attachments.
|}
== Weitere Plugins ==
{| class="wikitable sortable options"
|-
! Plugin !! Beschreibung
|-
| [https://www.allerstorfer.at/roundcube-nachricht-als-spam-markieren/ MarkAsJunk] || Nachrichten in den Spam-Ordner verschieben
|-
| [https://www.allerstorfer.at/roundcube-install-carddav-plugin-on-ubuntu-20-04/ CardDAV] || Netzwerk-Adressbuch verwalten
|-
| [https://www.allerstorfer.at/ispconfig3_roundcube-ispconfig3-plugins-fuer-roundcube/ Ispconfig3_Roundcube] || Einstellungen der Email-Konten bearbeiten. Sollte auf jedem ISPConfig-Server installiert sein.
|-
| [https://www.allerstorfer.at/roundcube-install-mobile-skin/ Mobile Skin] || Handy-Ansicht für Roundcube
|-
| autologon || Autologin from external Site e.g. (CMS, Portal ...)
|-
| logout redirect || Modified version to only redirect to the homepage (depending on the domain part of the default identity)
|-
| rcguard || This plugin logs failed login attempts and requires users to go through a reCAPTCHA verification process when the number of failed attempts go too high.
|-
| carddav || CardDav client. You can sync your addressbook against a CardDav server like nextcloud or SoGO.
|-
| quickrules || (abandoned project). Adds a button to the message list to allow the quick creation of rules in the SieveRules plugin. Information from selected emails is used to prefile the new rule form.
|-
| [[Roundcube/Plugin/contextmenu | contextmenu]] || Adds context menus to the message list, folder list and address book. Menu includes the abilities mark messages as read/unread, delete, reply and forward.
|-
| [[Roundcube/Plugin/swipe | swipe]] || adds left/right/down swipe actions to entries in the the message list on touch devices (tables/phones).
|}
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====
* /usr/share/doc/roundcube-plugins
* /usr/share/doc/roundcube-plugins-extra/
==== Links ====
===== Projekt =====
===== Weblinks =====
# https://roundcube.net/
# Roundcube Plugins Repository: [https://plugins.roundcube.net/ plugins.roundcube.net]
# https://notes.sagredo.eu/en/qmail-notes-185/roundcube-plugins-35.html
== TMP ==
== Persistent login ==
* Home page: <nowiki>https://github.com/mfreiholz/persistent_login</nowiki>
* Plugin name: ''persistent_login''
<blockquote>This nice plugin provides a "Keep me logged in" aka "Remember Me" functionality for Roundcube.</blockquote>Unfortunately this is not available via <code>composer</code>. A fork of this on <code>composer</code> actually exists, but it's not updated and it's not working fine here. So let's install it manually
wget -O persistent_login-5.3.0.tar.gz <nowiki>https://github.com/mfreiholz/persistent_login/archive/refs/tags/version-5.3.0.tar.gz</nowiki>
tar xzf persistent_login-5.3.0.tar.gz
mv persistent_login-version-5.3.0 persistent_login
chown -R apache:apache persistent_login
The plugin works better for me with the sql driver, as the cookie driver sometimes disconnects me. So let's enable the sql driver in the config file:
cd persistent_login
mv config.inc.php.dist config.inc.php
Now turn on tokens here in your config file
$config['ifpl_use_auth_tokens'] = true;
I also renamed the <code>php</code> <code>$rcmail_config</code> variable to <code>$config</code> everywhere, because <code>$rcmail_config</code> is now obsolete in <code>RoundCube</code>.
Finally, if this is a fresh installation of this plugin, we have to create the <code>MySQL</code> table into the <code>roundcube</code> database. The sql code can be found in the ''sql/mysql.sql'' file:
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 ==
* Shipped by RoundCube
* Plugin name: ''zipdownload''
<blockquote>Adds an option to download all attachments to a message in one zip file, when a message has multiple attachments. Also allows the download of a selection  of messages in one zip file. Supports mbox and maildir format.</blockquote>Rename the template of config file and adjust the few options as you like. I left the default options intact.
mv config.inc.php.dist config.inc.php
== Enigma ==
* More info here
* Requires: <code>gpg</code> (<code>gnupg</code> and <code>libgpg-error</code> on <code>Slackware</code> systems)
* Shipped by <code>Roundcube</code>
* Plugin name: ''enigma''
Update: the enigma plugin included in 1.3.1 version seems to be not compatible with the old version of <code>Crypt_GPG</code><blockquote>This plugin adds support for viewing and sending of signed and encrypted messages in PGP (<nowiki>RFC 2440</nowiki>) and PGP/MIME (<nowiki>RFC 3156</nowiki>) format.  The plugin uses gpg binary on the server and stores all keys (including private keys of the users) on the server. Encryption/decryption is done server-side. So, this plugin is for users who trust the server.</blockquote>Create a config file
cd /var/www/roundcube/plugins/enigma
cp -p config.inc.php.dist config.inc.php
The keys are stored by the server in the <code>enigma/home</code> dir. Let's move that dir to a folder that is not accessible from the web and assign to apache write permissions
mkdir -p /var/www/roundcube-enigma-home
chown -R root:apache /var/www/roundcube-enigma-home
chmod -R g+w /var/www/roundcube-enigma-home
Now modify your apache configuration to grant proper permissions to apache in the newly created dir:
Require all granted
Don't forget to restart your web server, for example:
apachectl restart
Now modify the enigma config file to point to the new home dir:
$config['enigma_pgp_homedir'] = '/var/www/roundcube-enigma-home';
The enigma plugin requires that the Crypt_GPG library is installed exactly in your <code>/var/www/roundcube/plugins/enigma/lib/Crypt_GPG</code> dir. Considering that <code>roundcube</code> resets the default <code>include_path php</code> variable (which is set by <code>php.ini</code> to <code>/path/to/php/lib</code>), if you choose to install it using <code>pear</code> you will get a "Server error". So let's manually download and install the package in the proper folder
cd /var/www/roundcube/plugins/enigma/lib
wget <nowiki>http://download.pear.php.net/package/Crypt_GPG-1.6.2.tgz</nowiki>
tar xzf Crypt_GPG-1.6.2.tgz
ln -s Crypt_GPG-1.6.2/Crypt
chown -R root:apache Crypt*
The set up of the certificates is easy. Refer to this blog page for more info.
= Other plugins =
I leave here the documentation for plugins that I've used in the past or that it's not valid anymore for the current version of Roundcube, in case it can still be useful for someone or for myself in the future.
== rcguard ==
<blockquote>This plugin logs failed login attempts and requires users to go through a reCAPTCHA verification process when the number of failed attempts go too high. This provides protection against automated attacks.</blockquote>
* Installed via <code>composer</code> dsoares/rcguard
* Plugin name: ''rcguard''
mv config.inc.php.dist config.inc.php
You have to obtain a key from <nowiki>http://www.google.com/recaptcha</nowiki>. Put the key in your config file:
> nano config.inc.php
// Public key for reCAPTCHA
$config['recaptcha_publickey'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// Private key for reCAPTCHA
$config['recaptcha_privatekey'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
Create the mysql table where to store the logs of all failed attempts. IPs are released after a certain amount of time.
> 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;
That's it. The captha will be active after 5 failures. You can set this number in the config file.
Different themes and translations of recaptcha are available. Simply edit <code>rcguard.js</code>. For documentation, see:  <nowiki>https://developers.google.com/recaptcha</nowiki>
== autologon ==
<blockquote>Performs an auto login from an external page</blockquote>
* Shipped by <code>Roundcube</code>
* Plugin name: ''autologon''
You have to modify the default Thomas Bruederli's sample plugin like this (eventually change to $_GET):
<?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';
  }
}
Use a form like this one in your CMS page:
<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" />
<nowiki><table></nowiki>
<nowiki><tr></nowiki>
    <nowiki><td></nowiki>Utente<nowiki></td></nowiki>
    <nowiki><td></nowiki><nowiki><input name="_user" id="rcmloginuser" autocomplete="off" value="" type="text" /></nowiki><nowiki></td></nowiki>
<nowiki></tr></nowiki>
<nowiki><tr></nowiki>
    <nowiki><td></nowiki>Password<nowiki></td></nowiki>
    <nowiki><td></nowiki><nowiki><input name="_pass" id="rcmloginpwd" autocomplete="off" type="password" /></nowiki><nowiki></td></nowiki>
<nowiki></tr></nowiki>
<nowiki><tr></nowiki>
    <nowiki><td colspan="2"></nowiki><nowiki><input type="submit" value="Login" /></nowiki><nowiki></td></nowiki>
<nowiki></tr></nowiki>
<nowiki></table></nowiki>
</form>
== Logout redirect ==
This plugin is not tested against <code>Roundcube</code> 1.4.1
In case you have installed the autologon plugin this one could be useful to redirect users to the home page of your site upon logout.
* Info: <nowiki>http://www.std-soft.com/bfaq/52-cat-webmail/105-logout-redirect-fuer-roundcube.html</nowiki> (german)
* Download local copy
* Plugin name: ''logout_redirect''
cd /var/www/roundcube/plugins
wget <nowiki>http://notes.sagredo.eu/files/qmail/tar/RC-plugins/logout_redirect_rc0.5_v1.2-MN.tar.gz</nowiki>
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
The plugin ''logout_redirect'' must be the last in the list of plugins in the ''main.inc.php'' otherwise the subsequent plugins will no longer run.
Configure like this editing the ''config.inc.php'' inside the plugin's config folder:
$ config['logout_redirect_url'] = '<nowiki>http://www.yoursite.net'</nowiki>;
== quickrules ==
<blockquote>Adds a button to the message list to allow the quick creation of rules in the SieveRules plugin. Information from selected emails is used to prefile the new rule form.</blockquote>
* Version: 2.0
* Requires: managesieve plugin
* Plugin name: ''quickrules''
This package is abandoned and no longer maintained. No replacement package was suggested. I leave this documentation here, to be used with 1.3 and earlier versions of Roundcube.
The plugin version from github doesn't work with 0.9.2. I managed to install the new skin inside the old 0.6 version of the plugin and now it works fine. You can download my modified version from here.
cd /var/www/roundcube/plugins
wget <nowiki>https://notes.sagredo.eu/files/qmail/tar/old-RC-plugins/quickrules.tar.gz</nowiki>
tar xzf quickrules.tar.gz
chown -R root.apache quickrules
chmod -R o-rx quickrules
[[Kategorie:Roundcube]]
[[Kategorie:Roundcube]]
</noinclude>

Aktuelle Version vom 27. August 2023, 15:26 Uhr