This is an old revision of the document!
Bear in mind that this documentation is for the last released version. If you use an older version, you must refer to the README.md file inside the plugin archive.
Provides plugins for the Roundcube Webmail Suite.
See the configuration file for a fast overview.
When changing a configuration parameter in the plugin configuration file, you must not forget to trigger a plugin list update through the plugin management interface, else your changes won't be taken into account.
This plugin make it possible to install any Roundcube plugin by adding plugin definitions in the plugin configuration file.
A basic Roundcube plugin definition looks as follows:
'name' => [ 'enabled' => true ]
Here we provide a definition for the
name plugin and we tell that it must be
Most of time, you will have to go one step further by telling how to get and
install the plugin. This can be done by adding a
composer section as follows:
'name' => [ ... 'composer' => [ 'require' => [ 'vendor/name' => '^1.0' ] ] ]
composer section is what you would put in a
composer.json file to make the PHP
dependency manager (Composer) able to download and install a PHP dependency,
here, a Roundcube plugin.
In the example above, we require the
vendor/name composer package.
You can learn further about composer by looking at the official documentation.
Sometime, a plugin is not available through official
Roundcube plugin repository, nor through
packagist.org repository. In such a case and
if the plugin provides a
composer.json file, you can define your own
repository as follows:
'name' => [ ... 'composer' => [ 'repositories' => [ 'type' => 'path', 'url' => PERSISTENT_PATH . '/plugins/RoundcubePlugins/name', ], ... ] ]
In the above example, we define a
path repository in which composer will look
name plugin. We assume here that the Roundcube plugin has been
downloaded manually under the
It is possible to grab a plugin from a Git repository automatically by adding a
git section as follows:
'name' => [ ... 'git' => [ 'repository' => 'https://domain.tld/vendor/name.git' ], ... ]
By doing this, the repository will be automatically cloned under the
<PERSISTENT_PATH>/plugins/RoundcubePlugins/name directory (eg:
However, note that usage of the
git section above is only needed if the Git
repository holds more than one plugin. Most of time, you can do the same thing
through composer, using a
'name' => [ ... 'composer' => [ 'repositories' => [ 'type' => 'vcs', 'url' => "https://domain.tld/vendor/name.git" ], ... ] ]
A last step is needed if you want to override default Roundcube plugin
parameters. To to so, you can add a
config section as follow:
'name' => [ ... 'config' => [ 'file' => 'config.inc.php', 'include_file' => '/foo/bar/baz.php, 'parameters' => [ 'param1' => 'value', 'param2' => 'value' ] ] ]
fileis an OPTIONAL parameter that allows to override default plugin configuration template filename
include_fileis an OPTIONAL parameter that allows to provide the path of a file that will be included in the Roundcube plugin configuration file. Note that the file must be readable by the control panel user (eg: vu2000). A good place for that file could be the
parameters: is an OPTIONAL parameter that allows to provide plugin parameters. Those parameters will be added at the end of the plugin configuration file
To resume, if you want to override a Roundcube plugin configuration parameter, you must not edit its configuration file directly. Instead, you must process as above. This is needed because the i-MSCP Roundcube package doesn't save your changes on reconfiguration/update.
Sometime a plugin can require more configuration works. For that purpose, you can provide your own configuration script as follows
'name' => [ ... 'config' => [ ... 'script' => '/foo/bar/baz.pl' ] ]
In the above example, we provide the
/foo/bar/baz.pl Perl script. That script
will be executed automatically with the current action passed as first
Note that the script must provides a correct shebang.
#!/usr/bin/env perlfor a Perl script
#!/usr/bin/env phpfor a PHP script
#!/bin/shfor a shell script
See configure-managesieve.pl for an example.
additional_message_headers: Add additional headers to or remove them from outgoing messages.
archive: Adds a button to move the selected messages to an archive folder.
calendar: Provide calendaring features.
contextmenu: Creates context menus for various parts of Roundcube using commands from the toolbars.
emoticons: Adds emoticons support.
logon_page: Logon screen additions.
managesieve: Adds a possibility to manage Sieve scripts (incoming mail filters).
newmail_notifier: Provide notifications for new emails.
odfviewer: Open Document Viewer plugin.
pdfviewer: Inline PDF viewer plugin.
password: Password Change for Roundcube.
rcguard: Enforces reCAPTCHA for users that have too many failed logins
tasklist: Task management plugin.
vcard_attachments: Detects vCard attachments and allows to add them to address book...
zipdownload: Adds an option to download all attachments to a message in one zip file...
i-MSCP - internet Multi Server Control Panel Copyright (C) 2017 Laurent Declercq <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.