Difference between revisions of "RoundCube"

From SME Server
Jump to navigationJump to search
m (Use note macro)
 
(60 intermediate revisions by 6 users not shown)
Line 3: Line 3:
 
{{usefulnote}}
 
{{usefulnote}}
 
<blockquote style="float: right;">[[File:roundcube.png|250px]]</blockquote><br>
 
<blockquote style="float: right;">[[File:roundcube.png|250px]]</blockquote><br>
==RoundCube V0.9.5 for SME Server==
+
 
 +
==RoundCube V1.0 for SME Server==
 
===Maintainer===
 
===Maintainer===
[mailto:stephdl@de-labrusse.fr stephdl] Stéphane de Labrusse AKA [[User:stephdl|Stephdl]]<br />
+
[mailto:stephdl@de-labrusse.fr stephdl] Stéphane de Labrusse AKA [[User:stephdl|Stephdl]]
  
[http://www.dungog.net Dungog.net] (Software) : original developper
+
== Versions ==
 +
{{ #smeversion: smeserver-roundcube }}
  
===Description===
+
 
RoundCube Webmail is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality you expect from an e-mail client, including MIME support, address book, folder manipulation, message searching and spell checking. For more information see ''http://www.roundcube.net/''. Actually roundcube is only available with ''beta'' status, but it run very fast and stable.
+
roundcubemail_plugins is deprecated in SME10, all is provided by smeserver-roundcube
 +
{| class="wikitable"
 +
!Release
 +
!Released
 +
!Active Support
 +
!Security Support
 +
!Latest
 +
|-
 +
|1.6
 +
|25 Jul 2022
 +
|Yes
 +
|Yes
 +
|1.6.5
 +
|-
 +
|1.5 LTS
 +
|18 Oct 2021
 +
|Yes
 +
|Yes
 +
|1.5.6
 +
|}
  
 
===Installation===
 
===Installation===
Install from the [http://mirror.contribs.org/releases/7/smecontribs/i386/repoview/ SME Contribs] repository issue the following command on the SME Server shell:
+
<tabs container=""><tab name="For SME 10">
 +
yum install smeserver-extrarepositories-remi-roundcube -y
 +
we now only support version 1.6.x
 +
yum install smeserver-roundcube  --enablerepo=smecontribs,remi-roundcube
 +
 
 +
if you previously locked to version 1.5, to revert versionlock<syntaxhighlight lang="bash">
 +
  yum versionlock delete roundcubemail
 +
  yum update -y
 +
  signal-event smeserver-roundcube-update
 +
</syntaxhighlight>
 +
 
 +
</tab><tab name="For SME 9">
 +
yum install smeserver-roundcube --enablerepo=smecontribs
  
yum --enablerepo=smecontribs install smeserver-roundcube
+
answer yes (y) for all plugins you want to activate
  
 
If you do not want to restart your server
 
If you do not want to restart your server
  signal-event conf-roundcube; signal-event console-save
+
  signal-event roundcube-update
 
or
 
or
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
  
===Uninstallation===
+
upgrade
To remove the package issue the following command on the SME Server shell:
+
  yum upgrade --enablerepo=smecontribs,remi-roundcube
  rpm -e roundcube smeserver-roundcube
+
</tab><tab name="For SME 8">
 
+
==== '''For SME8''' ====
To remove mysql database and user, both are roundcube, see [[MySQL#Remove a database]] and [[MySQL#Remove a user]]. There is no need to reboot.
 
 
 
===Usage===
 
http://servername/roundcube'' and logon with your SME Server user account.
 
 
 
===Logs===
 
Logs are available :
 
 
 
less /opt/roundcube/logs/errors
 
 
 
=== Options ===
 
You can fine tune access to roundcube with DB settings. For details have a look at [[Web Application RPM#New DB settings]].
 
 
 
 
 
====Activate Roundcube Plugin====
 
Plugins need to be allowed in the main.config.php of roundcube, you can also write  options in this file. If you want to modify options you have to modify the template in /etc/e-smith/templates/opt/roundcube/config/main.inc.php/20plugin<br />
 
 
 
Please add all plugins you want to activate in the command line below :
 
$rcmail_config['plugins'] = array('plugin1','plugin2','plugin3');
 
where "plugin*" is a valid name of plugin and a valid folder name in /opt/roundcube/plugins
 
 
 
see the file 20plugin for example
 
 
 
nano /etc/e-smith/templates/opt/roundcube/config/main.inc.php/20plugin
 
save by ctrl+x
 
expand-template /opt/roundcube/config/main.inc.php
 
 
 
====Personal settings====
 
 
 
For special needs you should create your personal template file if you want your config file will not be overwritten by the smeserver-roundcube templates.
 
 
 
* The config file is now templated, so changes need to be made in a new fragment
 
# ll /etc/e-smith/templates/opt/roundcube/config/config.inc.php/
 
10default_host          15Ldap_addressbook      20plugins_configuration  template-begin          template-end           
 
 
 
* check which setting you want to change with
 
cat /opt/roundcube/config/defaults.inc.php
 
or for a plugin like managesieve
 
cat /opt/roundcube/plugins/managesieve/config.inc.php.dist
 
 
 
* Add the new settings in a new file
 
vim /etc/e-smith/templates/opt/roundcube/config/config.inc.php/30my_custom_settings
 
or for a plugin like managesieve
 
mkdir -p /etc/e-smith/templates-custom/opt/roundcube/plugins/managesieve/config.inc.php
 
vim /etc/e-smith/templates-custom/opt/roundcube/plugins/managesieve/config.inc.php/10pluginsetting
 
 
 
* Now you have to expand
 
signal-event conf-roundcube
 
 
 
 
 
All plugins in /opt/roundcube/plugins/ comes with their own config.inc.php.dist which you can use to set default options.
 
 
 
{{Note box|If you think your setting should be the SME default raise a bug}}
 
 
 
====Limit access to roundcube====
 
config setprop roundcube PublicAccess OPTION
 
 
 
OPTION is either of the following.
 
 
 
        none            => No access
 
        local            => Local network  (no password required)
 
        local-pw        => Local network  (password required)
 
        global          => Entire Internet(no password required)
 
        global-pw        => Entire Internet(password required)
 
        global-pw-remote => Entire Internet(password required outside local network)
 
 
 
{{Note box|the global option is already the default option to control access to this contribs}}
 
 
 
config setprop roundcube PublicAccess global
 
 
 
To enable your changes run these commands
 
 
 
expand-template /etc/httpd/conf/httpd.conf
 
sv h /service/httpd-e-smith
 
 
 
====Add a different URL====
 
by example
 
http://yourserver.net/webmail
 
or
 
http://yourserver.net/mail
 
 
 
{{warning box|This URL of '''/webmail''' is used by the horde webmail, so you have to deactivated the webmail in the server-manager}}
 
 
 
{{note box|this adds another url, it doesn't remove the default}}
 
 
 
config setprop roundcube URL webmail
 
or
 
config setprop roundcube URL mail
 
 
 
To enable your changes run these commands
 
 
 
expand-template /etc/httpd/conf/httpd.conf
 
sv h /service/httpd-e-smith
 
 
 
*If you want to remove completely the new url
 
 
 
config delprop roundcube URL
 
 
 
then
 
 
 
expand-template /etc/httpd/conf/httpd.conf
 
sv h /service/httpd-e-smith
 
 
 
 
 
{{Note box|If you think your setting should be the SME default raise a bug}}
 
 
 
=== Bugs ===
 
Please raise bugs under the SME-Contribs section in {{BugzillaFileBug|product=|component=|title=bugzilla}}and select the smeserver-roundcube component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-roundcube|title=this link}}.
 
 
 
 
 
[[Category: Contrib]]
 
[[Category: Webapps]]
 
[[Category: Dungog]]
 
[[Category: Mail]]
 
 
 
==RoundCube V1.0 for SME Server==
 
===Maintainer===
 
[mailto:stephdl@de-labrusse.fr stephdl] Stéphane de Labrusse AKA [[User:stephdl|Stephdl]]<br />
 
 
 
===Installation===
 
====For SME8====
 
 
Remember to first configure the two required repositories, [[stephdl]] and [[epel]],
 
Remember to first configure the two required repositories, [[stephdl]] and [[epel]],
 
then issue the following command on the SME Server shell:
 
then issue the following command on the SME Server shell:
Line 156: Line 68:
  
 
If you do not want to restart your server
 
If you do not want to restart your server
  signal-event conf-roundcube; signal-event console-save
+
  signal-event roundcube-update
or
 
signal-event post-upgrade; signal-event reboot
 
 
 
====For SME9====
 
Remember to first configure the required [[stephdl]] repository, then issue the following command on the SME Server shell:
 
 
 
yum install smeserver-roundcube --enablerepo=stephdl
 
rcplugin_update.sh
 
 
 
answer yes (y) for all plugins you want to activate
 
 
 
If you do not want to restart your server
 
signal-event conf-roundcube; signal-event console-save
 
 
or
 
or
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
 +
</tab>
 +
</tabs>
  
 
===Uninstallation===
 
===Uninstallation===
Line 182: Line 83:
 
http://servername/roundcube'' and logon with your SME Server user account.
 
http://servername/roundcube'' and logon with your SME Server user account.
  
 +
{{Note box|Roundcube will connect to IMAP with SSL to the primary domain of your server.
 +
You need a valid or a self-signed certificate including your own domain name at least as alternative DNS.}}
 
===Logs===
 
===Logs===
Logs are available :
+
<tabs container=""><tab name="For SME 9 and newer">
 +
less /var/log/roundcubemail/errors
 +
</tab><tab name="For SME 8">
 +
less /opt/roundcube/logs/errors
 +
</tab></tabs>
  
  less /opt/roundcube/logs/errors
+
===Limit access to web interface===
 +
{{Note box|By default, the Roundcube webmail interface is accessible from the entire internet without requiring additional HTTP authentication.}}
 +
Access to Roundcube can be fine-tuned by setting the corresponding property in the configuration DB of SME server:
 +
<tabs container=""><tab name="For SME 10 smeserver-roundcube-1.2-20 and newer">
 +
To change to public access do
 +
  config setprop roundcube access public
 +
  systemctl restart httpd-e-smith
 +
or to change to private access (lan + authorized external IP)
 +
  config setprop roundcube access private
 +
  systemctl restart httpd-e-smith
 +
 
 +
To disable roundcube
 +
  config setprop roundcube status disabled
 +
  signal-event smeserver-roundcube-update
 +
To enable roundcube
 +
  config setprop roundcube status enabled
 +
  signal-event smeserver-roundcube-update
 +
 
 +
</tab><tab name="For SME 10 before 1.2-20">
 +
  config setprop roundcube PublicAccess OPTION
 +
 
 +
where OPTION is either of the following:
 +
 
 +
        none            => No access
 +
        local            => Local network  (no password required)
 +
        local-pw        => Local network  (password required)
 +
        global          => Entire Internet (no password required, this is the default on SME)
 +
        global-pw        => Entire Internet (password required)
 +
        global-pw-remote => Entire Internet (password required outside local network)
  
===Access===
+
For example, to restrict access to LAN only:
{{Note box|By default, the Roundcube webmail interface is accessible from the entire internet without requiring additional HTTP authentication. }}
 
  
Access to Roundcube can be fine-tuned by setting the corresponding property in the configuration DB of SME server:
+
config setprop roundcube PublicAccess local
  
 +
To activate these changes to the configuration DB, run this command:
 +
systemctl restart httpd-e-smith
 +
</tab><tab name="For SME 8, 9">
 
  config setprop roundcube PublicAccess OPTION
 
  config setprop roundcube PublicAccess OPTION
  
Line 197: Line 134:
  
 
         none            => No access
 
         none            => No access
         local            => Local network (no password required)
+
         local            => Local network   (no password required)
         local-pw        => Local network (password required)
+
         local-pw        => Local network   (password required)
         global          => Entire Internet(no password required, this is the default on SME)
+
         global          => Entire Internet (no password required, this is the default on SME)
         global-pw        => Entire Internet(password required)
+
         global-pw        => Entire Internet (password required)
         global-pw-remote => Entire Internet(password required outside local network)
+
         global-pw-remote => Entire Internet (password required outside local network)
  
 
For example, to restrict access to LAN only:
 
For example, to restrict access to LAN only:
Line 207: Line 144:
 
  config setprop roundcube PublicAccess local
 
  config setprop roundcube PublicAccess local
  
To activate these changes to the configuration DB, run these commands
+
To activate these changes to the configuration DB, run these commands:
  
 
  expand-template /etc/httpd/conf/httpd.conf
 
  expand-template /etc/httpd/conf/httpd.conf
Line 213: Line 150:
  
 
afterwards.
 
afterwards.
 +
</tab></tabs>
 +
  
Note: For a general description of how DB settings work on SME server, have a look at [[Web Application RPM#New DB settings]].
 
  
=== Customization ===
 
  
 +
Note: for a general description of how DB settings work on SME server, have a look at [[Web Application RPM#New DB settings]].
  
 +
=== Customization ===
 +
{| class="wikitable"
 +
|+
 +
config setprop roundcube
 +
!property
 +
!default
 +
!accepted
 +
!comment
 +
|-
 +
|Dbname
 +
|roundcube
 +
|
 +
|
 +
|-
 +
|DbPassword
 +
|
 +
|
 +
|
 +
|-
 +
|DbUser
 +
|
 +
|
 +
|
 +
|-
 +
|Name
 +
|RoundCube IMAP Client
 +
|
 +
|
 +
|-
 +
|URL
 +
|
 +
|string
 +
|you can add an URL to your domains as an http alias. Could be webmail (if default webmail is deactivated)
 +
|-
 +
|PluginsList
 +
|globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve,nextcloud_attachments
 +
|comma separated list
 +
|if you need to add or remove a plugin you need to alter this string in order to get it detected
 +
|-
 +
|access
 +
|public
 +
|private,public
 +
|
 +
|-
 +
|status
 +
|enabled
 +
|enabled,disabled
 +
|
 +
|-
 +
|MaxUploadSize
 +
|100M
 +
|
 +
|
 +
|-
 +
|MemoryLimit
 +
|512M
 +
|
 +
|
 +
|-
 +
|PHPBaseDir
 +
|/usr/share/roundcubemail:/etc/roundcubemail/:/var/log/roundcubemail:/var/lib/roundcubemail:/var/log/roundcube.log:/var/lib/php/roundcube:/home/e-smith/files/roundcube:/dev/urandom:/proc/meminfo:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo
 +
|strings separated by :
 +
|the property will be added to the existing string
 +
|-
 +
|PHPmaxChildren
 +
|20
 +
|number
 +
|
 +
|-
 +
|PHPminServers
 +
|4
 +
|number
 +
|
 +
|-
 +
|PHPstartServers
 +
|6
 +
|number
 +
|
 +
|-
 +
|PHPmaxServers
 +
|8
 +
|number
 +
|
 +
|-
 +
|PHPmaxRequests
 +
|1000
 +
|number
 +
|
 +
|-
 +
|nextcloudURI
 +
|<nowiki>https://$DomainName/nextcloud</nowiki> or <nowiki>https://$nextcloud{'Virtualhost'}</nowiki>
 +
|
 +
|will override default, usefull if nextcloud is not on the same server
 +
|-
 +
|nextcloudFolder
 +
|Mail Attachments
 +
|string
 +
|can not be a subfolder
 +
|-
 +
|NCsoftlimit
 +
|<nowiki>$qmail{'MaxMessageSize'}||'25M'</nowiki>
 +
|number with M
 +
|limit size for attachements
 +
|-
 +
|nextcloudBehavior
 +
|prompt
 +
|prompt,upload
 +
|show dialog or upload directly
 +
|-
 +
|nextcloudVerifyCerts
 +
|true
 +
|true,false
 +
|allow you to override cert verification in case of self signed cert
 +
|}
 +
then
 +
signal-event roundcube-update
 
====Roundcube plugins====
 
====Roundcube plugins====
  
 
+
=====Installing additional plugins=====
=====Default plugins shipped with smeserver-roundcube=====
 
The smeserver-roundcube contrib is shipped with the following plugins already installed and enabled by default:
 
 
 
# config getprop roundcube PluginsList
 
 
globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk2,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve
 
 
 
=====Adding additional plugins=====
 
 
{{Note box|The upstream Roundcube project is currently transitioning from making plugins available through http://trac.roundcube.net/wiki/Plugin_Repository to a new full fledged plugin repository at http://plugins.roundcube.net and a semi-automated plugin installation process. SME server admins are encouraged to use the new style method described below. }}
 
{{Note box|The upstream Roundcube project is currently transitioning from making plugins available through http://trac.roundcube.net/wiki/Plugin_Repository to a new full fledged plugin repository at http://plugins.roundcube.net and a semi-automated plugin installation process. SME server admins are encouraged to use the new style method described below. }}
  
Line 239: Line 285:
  
 
'''Step 3:''' Add the package name and version to the "require:" block in /opt/roundcube/composer.json. Take attention to the comma (,) separator, it is really important!
 
'''Step 3:''' Add the package name and version to the "require:" block in /opt/roundcube/composer.json. Take attention to the comma (,) separator, it is really important!
 +
<tabs container=""><tab name="For SME 10">
 +
cd /usr/share/roundcubemail
 +
/usr/bin/php74  /usr/local/bin/composer require cor/message_highlight --with-dependencies
 +
</tab><tab name="For SME 9">
 +
nano /usr/share/roundcubemail/composer.json
 +
 +
  "require": {
 +
      "php": ">=5.3.0",
 +
      "roundcube/plugin-installer": ">=0.1.3",
 +
      "johndoh/markasjunk2": "dev-release-1.0",
 +
      "johndoh/contextmenu": "dev-master",
 +
      "johndoh/globaladdressbook": "dev-release-1.0",
 +
        "cor/message_highlight": "dev-master"
 +
    },
  
  # nano /opt/roundcube/composer.json
+
</tab><tab name="For SME 8">
 +
  nano /opt/roundcube/composer.json
  
 
   "require": {
 
   "require": {
Line 250: Line 311:
 
         "cor/message_highlight": "dev-master"
 
         "cor/message_highlight": "dev-master"
 
     },
 
     },
 +
</tab></tabs>
  
 
'''Step 4:''' after each modification to composer.json, in order to automatically download and install the plugin launch  
 
'''Step 4:''' after each modification to composer.json, in order to automatically download and install the plugin launch  
  # rcplugin_update.sh
+
  rcplugin_update.sh
  
 
When asked, answer yes to automatically activate the plugin in the current Roundcube configuration.
 
When asked, answer yes to automatically activate the plugin in the current Roundcube configuration.
Line 259: Line 321:
  
 
'''Step 5a:''' First show the list of plugins currently in the configuration DB:
 
'''Step 5a:''' First show the list of plugins currently in the configuration DB:
  # config getprop roundcube PluginsList
+
 
    PluginsList=globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk2,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve
+
config getprop roundcube PluginsList
 +
 +
''PluginsList=globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve''
  
 
'''Step 5b:''' Add your newly installed plugin to the list (separated by a comma (,) and without spaces) and activate the change:
 
'''Step 5b:''' Add your newly installed plugin to the list (separated by a comma (,) and without spaces) and activate the change:
  # config setprop roundcube PluginsList globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk2,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve,message_highlight
+
 
 +
  config setprop roundcube PluginsList globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk2,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve,message_highlight
  
 
'''Step 5c:''' Activate the changes to the config DB:
 
'''Step 5c:''' Activate the changes to the config DB:
  # signal-event conf-roundcube
+
  signal-event roundcube-update
  
 
Step 5 in short, using backticks:
 
Step 5 in short, using backticks:
  # config setprop roundcube PluginsList `config getprop roundcube PluginsList`,message_highlight
+
 
  # signal-event conf-roundcube
+
  config setprop roundcube PluginsList `config getprop roundcube PluginsList`,message_highlight
 +
  signal-event conf-roundcube
  
 
To check for updates to plugins already installed, you can at any time issue the following command again:
 
To check for updates to plugins already installed, you can at any time issue the following command again:
  # rcplugin_update.sh
+
rcplugin_update.sh
  
====Customize Roundcube settings====
+
====Miscellaneous notes====
  
For special needs you should create your personal template file if you want your config file will not be overwritten by the smeserver-roundcube templates. This also applies to Roundcube plugins in /opt/roundcube/plugins/ which occasionally come with their own config.inc.php or generic config.php.inc.dist which you can use to set default options.
+
====Mail filter support (Sieve)====
 +
Roundcube on SME server comes with the managesieve plugin installed and enabled by default (sieverules has been deprecated and you must only use managesieve). The managesieve plugin adds additional menu items to the settings in Roundcube's webinterface to allow users to define mail filters and vacation messages in a convenient way.  
  
* The config file for Roundcube itself is now templated, so changes need to be made in a new custom template fragment
+
=====Troubleshooting=====
# ll /etc/e-smith/templates/opt/roundcube/config/config.inc.php/
+
* If mails are not correctly filtered by the filters configured in user's roundcube settings, check the following:
10default_host          15Ldap_addressbook      20plugins_configuration  template-begin          template-end           
+
** Is [[Dovecot-extras|smeserver-dovecot-extras]] installed and is the sieve service enabled ( <tt>config getprop sieve status</tt> => enabled )? If it is not enabled: <tt>config setprop sieve status enabled</tt>
 +
** Is using sieve deliberately disabled for the user in question ( <tt>db accounts getprop $USER Sieve</tt> => disabled )? If it is disabled: <tt>db accounts setprop $USER Sieve enabled</tt> (Note the capital "S" in Sieve!)
 +
** If [[Mailsorting|smeserver-mailsorting]] is also installed on the server, mails are first filtered by procmail or maildrop before they are handed off to the dovecot delivery agent and sieve filters. Chances are that a rule exists in a user's .procmailrc or .mailfilter file that intercepts all mails before they get to the latter stage in the mail delivery process.
 +
   
 +
------------------
  
* check which setting you want to change with
+
=== Bugs ===
# cat /opt/roundcube/config/defaults.inc.php
+
Please raise bugs under the SME-Contribs section in {{BugzillaFileBug|product=|component=|title=bugzilla}}and select the smeserver-roundcube component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-roundcube|title=this link}}.
 +
* smeserver-roundcube
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=smeserver-roundcube|noresultsmessage="No open bugs found."}}
 +
* roundcubemail_plugins
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id|order=desc |component=roundcubemail_plugins|noresultsmessage="No open bugs found."}}
  
* Extend the default settings by adding a new template fragment and add your customizations/additions there, eg.:
+
[[Category: Contrib]]
# vim /etc/e-smith/templates/opt/roundcube/config/config.inc.php/30my_custom_settings
+
[[Category: Webapps]]
 
+
[[Category: Dungog]]
* Finally, expand the template:
+
[[Category: Mail]]
# signal-event conf-roundcube
 
 
 
Likewise, plugin customization can be done by creating custom template fragments.
 
For example, to set if and how the "vacation management panel" of the "managesieve" plugin should appear in the Roundcube webmail frontend:
 
 
 
* check the current configuration of the managesieve plugin:
 
  # cat /opt/roundcube/plugins/managesieve/config.inc.php
 
 
 
* check current template fragments for the plugin configuration:
 
  # ll /etc/e-smith/templates/opt/roundcube/plugins/managesieve/config.inc.php/
 
  ...
 
  -rw-r--r-- 1 root root  266 30. Nov 19:45 30showvacation
 
  ...
 
 
 
* copy the relevant template fragment to /etc/e-smith/templates-custom/... and modify the setting: 
 
# mkdir -p /etc/e-smith/templates-custom/opt/roundcube/plugins/managesieve/config.inc.php
 
# cp /etc/e-smith/templates/opt/roundcube/plugins/managesieve/config.inc.php/30showvacation /etc/e-smith/templates-custom/opt/roundcube/plugins/managesieve/config.inc.php/
 
# vim /etc/e-smith/templates-custom/opt/roundcube/plugins/managesieve/config.inc.php/30showvacation
 
 
 
* Finally, expand the customized template:
 
# signal-event conf-roundcube
 
 
 
{{Note box|If you think your setting should be the SME default raise a bug}}
 
 
 
 
 
====Add an alternative URL====
 
 
 
If Roundcube should be reachable by an alternative URL to http://yourserver.net/roundcube, eg.
 
 
 
http://yourserver.net/webmail
 
or
 
http://yourserver.net/mail
 
 
 
{{warning box|This URL of '''/webmail''' is used by the horde webmail, so you have to deactivated the webmail in the server-manager}}
 
 
 
{{note box|this adds another url, it doesn't remove the default}}
 
 
 
# config setprop roundcube URL webmail
 
or
 
# config setprop roundcube URL mail
 
 
 
To enable your changes run these commands
 
 
 
# expand-template /etc/httpd/conf/httpd.conf
 
# sv h /service/httpd-e-smith
 
 
 
*If you want to remove completely the new url
 
 
 
# config delprop roundcube URL
 
 
 
then
 
 
 
# expand-template /etc/httpd/conf/httpd.conf
 
# sv h /service/httpd-e-smith
 

Latest revision as of 10:20, 27 February 2024


PythonIcon.png Skill level: Easy
The instructions for installing and using Roundcube can be followed by a beginner, changing options requires a basic knowledge of linux.


Is this article helpful to you?
Please consider donating or volunteering
Thank you!

Roundcube.png


RoundCube V1.0 for SME Server

Maintainer

stephdl Stéphane de Labrusse AKA Stephdl

Versions

Contrib 10:
Contrib 9:
smeserver-roundcube
The latest version of smeserver-roundcube is available in the SME repository, click on the version number(s) for more information.



roundcubemail_plugins is deprecated in SME10, all is provided by smeserver-roundcube

Release Released Active Support Security Support Latest
1.6 25 Jul 2022 Yes Yes 1.6.5
1.5 LTS 18 Oct 2021 Yes Yes 1.5.6

Installation

yum install smeserver-extrarepositories-remi-roundcube -y
we now only support version 1.6.x
yum install smeserver-roundcube   --enablerepo=smecontribs,remi-roundcube
if you previously locked to version 1.5, to revert versionlock
  yum versionlock delete roundcubemail
  yum update -y
  signal-event smeserver-roundcube-update
yum install smeserver-roundcube --enablerepo=smecontribs

answer yes (y) for all plugins you want to activate

If you do not want to restart your server

signal-event roundcube-update

or

signal-event post-upgrade; signal-event reboot

upgrade

yum upgrade --enablerepo=smecontribs,remi-roundcube

For SME8

Remember to first configure the two required repositories, stephdl and epel, then issue the following command on the SME Server shell:

yum install smeserver-roundcube --enablerepo=epel,stephdl
rcplugin_update.sh

answer yes (y) for all plugins you want to activate

If you do not want to restart your server

signal-event roundcube-update

or

signal-event post-upgrade; signal-event reboot

Uninstallation

To remove the package issue the following command on the SME Server shell:

yum remove roundcube smeserver-roundcube smeserver-roundcube_plugins

To remove mysql database and user, both are roundcube, see MySQL#Remove a database and MySQL#Remove a user. There is no need to reboot.

Usage

http://servername/roundcube and logon with your SME Server user account.


Important.png Note:
Roundcube will connect to IMAP with SSL to the primary domain of your server.

You need a valid or a self-signed certificate including your own domain name at least as alternative DNS.


Logs

less /var/log/roundcubemail/errors
less /opt/roundcube/logs/errors

Limit access to web interface

Important.png Note:
By default, the Roundcube webmail interface is accessible from the entire internet without requiring additional HTTP authentication.


Access to Roundcube can be fine-tuned by setting the corresponding property in the configuration DB of SME server:

To change to public access do

 config setprop roundcube access public
 systemctl restart httpd-e-smith

or to change to private access (lan + authorized external IP)

 config setprop roundcube access private
 systemctl restart httpd-e-smith

To disable roundcube

 config setprop roundcube status disabled
 signal-event smeserver-roundcube-update

To enable roundcube

 config setprop roundcube status enabled
 signal-event smeserver-roundcube-update
config setprop roundcube PublicAccess OPTION

where OPTION is either of the following:

       none             => No access
       local            => Local network   (no password required)
       local-pw         => Local network   (password required)
       global           => Entire Internet (no password required, this is the default on SME)
       global-pw        => Entire Internet (password required)
       global-pw-remote => Entire Internet (password required outside local network)

For example, to restrict access to LAN only:

config setprop roundcube PublicAccess local

To activate these changes to the configuration DB, run this command:

systemctl restart httpd-e-smith
config setprop roundcube PublicAccess OPTION

where OPTION is either of the following:

       none             => No access
       local            => Local network   (no password required)
       local-pw         => Local network   (password required)
       global           => Entire Internet (no password required, this is the default on SME)
       global-pw        => Entire Internet (password required)
       global-pw-remote => Entire Internet (password required outside local network)

For example, to restrict access to LAN only:

config setprop roundcube PublicAccess local

To activate these changes to the configuration DB, run these commands:

expand-template /etc/httpd/conf/httpd.conf
sv h /service/httpd-e-smith

afterwards.



Note: for a general description of how DB settings work on SME server, have a look at Web Application RPM#New DB settings.

Customization

config setprop roundcube
property default accepted comment
Dbname roundcube
DbPassword
DbUser
Name RoundCube IMAP Client
URL string you can add an URL to your domains as an http alias. Could be webmail (if default webmail is deactivated)
PluginsList globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve,nextcloud_attachments comma separated list if you need to add or remove a plugin you need to alter this string in order to get it detected
access public private,public
status enabled enabled,disabled
MaxUploadSize 100M
MemoryLimit 512M
PHPBaseDir /usr/share/roundcubemail:/etc/roundcubemail/:/var/log/roundcubemail:/var/lib/roundcubemail:/var/log/roundcube.log:/var/lib/php/roundcube:/home/e-smith/files/roundcube:/dev/urandom:/proc/meminfo:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo strings separated by : the property will be added to the existing string
PHPmaxChildren 20 number
PHPminServers 4 number
PHPstartServers 6 number
PHPmaxServers 8 number
PHPmaxRequests 1000 number
nextcloudURI https://$DomainName/nextcloud or https://$nextcloud{'Virtualhost'} will override default, usefull if nextcloud is not on the same server
nextcloudFolder Mail Attachments string can not be a subfolder
NCsoftlimit $qmail{'MaxMessageSize'}||'25M' number with M limit size for attachements
nextcloudBehavior prompt prompt,upload show dialog or upload directly
nextcloudVerifyCerts true true,false allow you to override cert verification in case of self signed cert

then

signal-event roundcube-update

Roundcube plugins

Installing additional plugins
Important.png Note:
The upstream Roundcube project is currently transitioning from making plugins available through http://trac.roundcube.net/wiki/Plugin_Repository to a new full fledged plugin repository at http://plugins.roundcube.net and a semi-automated plugin installation process. SME server admins are encouraged to use the new style method described below.


To install an additional (non-default) Roundcube plugin in SME server roundcube :

Step 1: Find the plugin page on http://plugins.roundcube.net/packages (eg. http://plugins.roundcube.net/packages/cor/message_highlight)

Step 2: Take note of the package name and version shown in the 'require:' line right below the title of the plugin's version heading (eg. "cor/message_highlight": "dev-master")

Step 3: Add the package name and version to the "require:" block in /opt/roundcube/composer.json. Take attention to the comma (,) separator, it is really important!

cd /usr/share/roundcubemail
/usr/bin/php74  /usr/local/bin/composer require cor/message_highlight --with-dependencies
nano /usr/share/roundcubemail/composer.json
 "require": {
      	"php": ">=5.3.0",
      	"roundcube/plugin-installer": ">=0.1.3",
      	"johndoh/markasjunk2": "dev-release-1.0",
      	"johndoh/contextmenu": "dev-master",
      	"johndoh/globaladdressbook": "dev-release-1.0",
        "cor/message_highlight": "dev-master"
    },
nano /opt/roundcube/composer.json
 "require": {
      	"php": ">=5.3.0",
      	"roundcube/plugin-installer": ">=0.1.3",
      	"johndoh/markasjunk2": "dev-release-1.0",
      	"johndoh/contextmenu": "dev-master",
      	"johndoh/globaladdressbook": "dev-release-1.0",
        "cor/message_highlight": "dev-master"
    },

Step 4: after each modification to composer.json, in order to automatically download and install the plugin launch

rcplugin_update.sh

When asked, answer yes to automatically activate the plugin in the current Roundcube configuration.

Step 5: In order to keep the list of installed plugins persistent when this contrib is updated (ie. configuration templates are expanded again), you *absolutely* need to add the newly installed Roundcube plugin to the "PluginsList" property of "roundcube" in the configuration database of SME server in addition to steps above:

Step 5a: First show the list of plugins currently in the configuration DB:

config getprop roundcube PluginsList

PluginsList=globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve

Step 5b: Add your newly installed plugin to the list (separated by a comma (,) and without spaces) and activate the change:

config setprop roundcube PluginsList globaladdressbook,carddav,calendar,libcalendaring,contextmenu,markasjunk2,vcard_attachments,newmail_notifier,emoticons,tasklist,managesieve,message_highlight

Step 5c: Activate the changes to the config DB:

signal-event roundcube-update

Step 5 in short, using backticks:

config setprop roundcube PluginsList `config getprop roundcube PluginsList`,message_highlight
signal-event conf-roundcube

To check for updates to plugins already installed, you can at any time issue the following command again:

rcplugin_update.sh

Miscellaneous notes

Mail filter support (Sieve)

Roundcube on SME server comes with the managesieve plugin installed and enabled by default (sieverules has been deprecated and you must only use managesieve). The managesieve plugin adds additional menu items to the settings in Roundcube's webinterface to allow users to define mail filters and vacation messages in a convenient way.

Troubleshooting
  • If mails are not correctly filtered by the filters configured in user's roundcube settings, check the following:
    • Is smeserver-dovecot-extras installed and is the sieve service enabled ( config getprop sieve status => enabled )? If it is not enabled: config setprop sieve status enabled
    • Is using sieve deliberately disabled for the user in question ( db accounts getprop $USER Sieve => disabled )? If it is disabled: db accounts setprop $USER Sieve enabled (Note the capital "S" in Sieve!)
    • If smeserver-mailsorting is also installed on the server, mails are first filtered by procmail or maildrop before they are handed off to the dovecot delivery agent and sieve filters. Chances are that a rule exists in a user's .procmailrc or .mailfilter file that intercepts all mails before they get to the latter stage in the mail delivery process.

Bugs

Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-roundcube component or use this link .

  • smeserver-roundcube
IDProductVersionStatusSummary (2 tasks)
12587SME Contribs10.0CONFIRMEDcomposer installs skins in plugins folder
12270SME Contribs10.0CONFIRMEDNFR: Allow the specification of the host for the imap mail
  • roundcubemail_plugins
"No open bugs found."