diff --git a/createlinks b/createlinks index bc772a0..7c8f529 100644 --- a/createlinks +++ b/createlinks @@ -1,43 +1,74 @@ #!/usr/bin/perl -w use esmith::Build::CreateLinks qw(:all); -use esmith::Build::Backup qw(:all); -# our event specific for updating with yum without reboot -$event = 'smeserver-roundcube-update'; +# Koozali event specific for updating with yum without reboot +$event = "smeserver-roundcube-update"; #add here the path to your templates needed to expand #see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event -# Maybe need ths in here as well: -# /etc/dar/DailyBackup.dcf - if backup requested - foreach my $file (qw( /etc/systemd/system-preset/49-koozali.preset )) { templates2events( $file, $event ); -}; +} + #action needed in case we have a systemd unit -event_link('systemd-default', $event, '10'); -event_link('systemd-reload', $event, '50'); - -#services we might need to restart -#event_services($event, 'xxxx' => 'restart', 'yyyy' => 'restart'); - -#Backup contrib files -# backup_includes("smeserver-roundcube", qw( - # files(s) to be backed up -#)); - -#Other possible entries: -#Server manager entry -#panel_link("smeserver-roundcube", 'manager'); -#Events to smeserver-roundcube -#$event = 'smeserver-roundcube-smeserver-roundcube'; -# safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smeserver-roundcube"); -# templates2events("/etc/smeserver-roundcube/smeserver-roundcube.conf", $event); +event_link("systemd-default", $event, "10"); +event_link("systemd-reload", $event, "50"); +#action specific to this package +#event_link("some event", $event, "30"); +#services we need to restart +#safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/some service"); +#and Server Manager panel link +#panel_link('somefunction', 'manager'); +#expand specific roundcube template +for my $event (qw( + smeserver-roundcube-update + bootstrap-console-save + conf-roundcube + roundcube-update + console-save + )) +{ + templates2events("/usr/share/roundcubemail/plugins/managesieve/config.inc.php", $event); + templates2events("/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php", $event); + templates2events("/etc/roundcubemail/config.inc.php", $event); + templates2events("/etc/e-smith/sql/init/80roundcube", $event); + +} + +#restart specific services to avoid to reboot after the installation +for my $event (qw( + smeserver-roundcube-update + conf-roundcube + roundcube-update + )) +{ + templates2events("/etc/opt/remi/php81/php-fpm.d/www.conf",$event); + templates2events("/etc/httpd/conf/httpd.conf", $event); + templates2events("/etc/dovecot/dovecot.conf", $event); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/php81-php-fpm"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init"); + safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/dovecot"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/qmail"); +} +#We want to expand /etc/e-smith/templates-user/.qmail +foreach my $event (qw( + smeserver-roundcube-update + conf-roundcube + roundcube-update + )) +{ + event_link("qmail-update-user", $event, "20"); + event_link("roundcube-conf", $event, "03"); +} +safe_symlink("/usr/share/php/Net/LDAP3","root/usr/share/pear/Net/LDAP3"); +safe_symlink("/usr/share/php/Net/LDAP3.php","root/usr/share/pear/Net/LDAP3.php"); diff --git a/root/etc/e-smith/db/accounts/defaults/roundcube/type b/root/etc/e-smith/db/accounts/defaults/roundcube/type new file mode 100644 index 0000000..123f60c --- /dev/null +++ b/root/etc/e-smith/db/accounts/defaults/roundcube/type @@ -0,0 +1 @@ +reserved diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/DbName b/root/etc/e-smith/db/configuration/defaults/roundcube/DbName new file mode 100644 index 0000000..51d7abf --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/DbName @@ -0,0 +1 @@ +roundcube diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/DbUser b/root/etc/e-smith/db/configuration/defaults/roundcube/DbUser new file mode 100644 index 0000000..51d7abf --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/DbUser @@ -0,0 +1 @@ +roundcube diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/Name b/root/etc/e-smith/db/configuration/defaults/roundcube/Name new file mode 100644 index 0000000..cdae9a2 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/Name @@ -0,0 +1 @@ +RoundCube IMAP Client diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList b/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList new file mode 100644 index 0000000..91f0a6f --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList @@ -0,0 +1 @@ +globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve,nextcloud_attachments diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/access b/root/etc/e-smith/db/configuration/defaults/roundcube/access new file mode 100644 index 0000000..a48cf0d --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/access @@ -0,0 +1 @@ +public diff --git a/root/etc/e-smith/db/configuration/defaults/roundcube/status b/root/etc/e-smith/db/configuration/defaults/roundcube/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/roundcube/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/migrate/80ROUNDCUBE_IMAPS_ACCESS b/root/etc/e-smith/db/configuration/migrate/80ROUNDCUBE_IMAPS_ACCESS new file mode 100644 index 0000000..86dbbc9 --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/80ROUNDCUBE_IMAPS_ACCESS @@ -0,0 +1,17 @@ +{ +# If you set the server dns resolver to external +# (for the main domain) you can not login in roundcube +# with the imap authentication + +use esmith::DomainsDB; +my $d = esmith::DomainsDB->open_ro; +my $domainname = $DB->get_value('DomainName') or + die ("Unable to retrieve the domain name: $!"); + +my $dns = $d->get_prop("$domainname",'Nameservers') or + die ("Unable to retrieve the Name Servers: $!"); + +if ($dns ne 'localhost') { +$DB->set_prop('imaps','access','public'); +} +} diff --git a/root/etc/e-smith/db/configuration/migrate/80roundcube b/root/etc/e-smith/db/configuration/migrate/80roundcube new file mode 100644 index 0000000..326f61e --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/80roundcube @@ -0,0 +1,20 @@ +{ + use MIME::Base64 qw(encode_base64); + + my $rec = $DB->get('roundcube') || $DB->new_record('roundcube', {type => 'service'}); + +# migrate PublicAccess to access + if ( my $PublicAccess = $DB->get_prop_and_delete('roundcube','PublicAccess') ) { + $DB->set_prop('roundcube','access', "private"); + $DB->set_prop('roundcube','access', "public") if ($PublicAccess =~ /global/); + $DB->set_prop('roundcube','status', "disabled") if ($PublicAccess == "none"); + } + + + + my $pw = $rec->prop('DbPassword'); + return "" if $pw; + + $rec->set_prop('DbPassword', sprintf("%15.0f", int( (1000000000000000) * rand() ))); + +} diff --git a/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration b/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration new file mode 100644 index 0000000..d91e8df --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration @@ -0,0 +1,57 @@ +{ + use esmith::ConfigDB; + my $cdb = esmith::ConfigDB->open() || die "Couldn't open ConfigDB\n"; + ##Added for version smeserver-roundcube-1.1-4 + my $plugins = $cdb->get_prop('roundcube','PluginsList') || ''; + + return unless ($plugins ne ''); + +#nextcloud_attachements is used +if ($plugins !~ 'nextcloud_attachments') + { + $plugins = $plugins.',nextcloud_attachments'; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +#sieverule is now used instead of +if ($plugins !~ 'managesieve') + { + $plugins = $plugins.',managesieve'; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +# sieverule deprecated + if ($plugins =~ 'sieverule') + { + $plugins =~ s/,sieverule//g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +# markasjunk2 deprecated + if ($plugins =~ 'markasjunk') + { + $plugins =~ s/markasjunk2/markasjunk/g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +#Carddav is a really bad plugin, when available it will become usefull + if ($plugins =~ 'carddav') + { + $plugins =~ s/,carddav//g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +#remove calendar + if ($plugins =~ 'calendar') + { + $plugins =~ s/,calendar//g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +#remove libcalendaring + if ($plugins =~ 'libcalendaring') + { + $plugins =~ s/,libcalendaring//g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +#remove tasklist + if ($plugins =~ 'tasklist') + { + $plugins =~ s/,tasklist//g; + $cdb->set_prop('roundcube','PluginsList',"$plugins"); + } +} diff --git a/root/etc/e-smith/events/actions/roundcube-conf b/root/etc/e-smith/events/actions/roundcube-conf new file mode 100644 index 0000000..7808428 --- /dev/null +++ b/root/etc/e-smith/events/actions/roundcube-conf @@ -0,0 +1,2 @@ +#!/bin/bash +/usr/bin/rcplugin_update.sh diff --git a/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80roundcube b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80roundcube new file mode 100644 index 0000000..940dcf3 --- /dev/null +++ b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80roundcube @@ -0,0 +1 @@ +PERMS=0750 diff --git a/root/etc/e-smith/templates.metadata/etc/roundcubemail/config.inc.php b/root/etc/e-smith/templates.metadata/etc/roundcubemail/config.inc.php new file mode 100644 index 0000000..b916d35 --- /dev/null +++ b/root/etc/e-smith/templates.metadata/etc/roundcubemail/config.inc.php @@ -0,0 +1,3 @@ +UID="root" +GID="www" +PERMS=0640 diff --git a/root/etc/e-smith/templates/etc/e-smith/sql/init/80roundcube b/root/etc/e-smith/templates/etc/e-smith/sql/init/80roundcube new file mode 100644 index 0000000..622fd06 --- /dev/null +++ b/root/etc/e-smith/templates/etc/e-smith/sql/init/80roundcube @@ -0,0 +1,29 @@ +{ + my $db = $roundcube{DbName} || 'roundcube'; + my $user = $roundcube{DbUser} || 'roundcube'; + my $pass = $roundcube{DbPassword} || 'changeme'; + $OUT .= < + Require all denied + + ); + } +} diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60RoundCube-force-https b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60RoundCube-force-https new file mode 100644 index 0000000..9a87dc8 --- /dev/null +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/60RoundCube-force-https @@ -0,0 +1,23 @@ +{ + my $status = $roundcube{'status'} || "disabled"; + return " # roundcube is disabled in this VirtualHost" + unless $status eq 'enabled'; + +{ +if ($port ne "443") +{ +$OUT .= <<'HERE'; +## Redirect roundcubeWeb Address to Secure Address +RewriteEngine on +RewriteRule ^/roundcube https://%{HTTP_HOST}/roundcube +RewriteRule ^/roundcubemail https://%{HTTP_HOST}/roundcubemail + +## End Of Redirect +HERE + +if ((exists $roundcube{'URL'}) && ($roundcube{'URL'} ne '')) { + $OUT .= "RewriteRule ^/$roundcube{'URL'} https://%{HTTP_HOST}/$roundcube{'URL'}\n"; + } +} +} +} diff --git a/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube new file mode 100644 index 0000000..941876a --- /dev/null +++ b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube @@ -0,0 +1,67 @@ +{ + my $phpversion="81"; + +if ($PHP_VERSION eq $phpversion){ + if (($roundcube{'status'} || 'disabled') eq 'enabled'){ + my $max_upload_size = ($roundcube{MaxUploadSize} || '100M'); + $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/); + my $memory_limit = ($roundcube{MemoryLimit} || '512M'); + $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/); + my $open_basedir= $roundcube{PHPBaseDir} || ''; + $open_basedir = "/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:$open_basedir"; + my $id = 'roundcube'; + my $max_children = $roundcube{'PHPmaxChildren'} || 20; + my $min_spare_servers = $roundcube{'PHPminServers'} || 4; + my $start_servers = $roundcube{'PHPstartServers'} || 6; + my $max_spare_servers = $roundcube{'PHPmaxServers'} || 8; + my $max_requests = $roundcube{'PHPmaxRequests'} || 1000; + $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers; + $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers; + + $OUT .=<<_EOF; + +[php$PHP_VERSION-$id] +user = www +group = www +listen.owner = root +listen.group = www +listen.mode = 0660 +listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock +pm = dynamic +pm.max_children = $max_children +pm.start_servers = $start_servers +pm.min_spare_servers = $min_spare_servers +pm.max_spare_servers = $max_spare_servers +pm.max_requests = $max_requests +php_admin_value[sys_temp_dir] = /var/lib/php/$id/tmp +php_admin_value[session.save_path] = /var/lib/php/$id/session +php_admin_value[session.gc_maxlifetime] = 86400 +php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp +php_admin_value[error_log] = /var/log/php/$id/error.log +slowlog = /var/log/php/roundcube/slow.log +php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } +php_admin_flag[display_errors] = off +php_admin_flag[log_errors] = on +php_admin_value[error_log] = syslog +php_admin_value[memory_limit] = $memory_limit +php_admin_value[max_execution_time] = 3600 +php_admin_value[post_max_size] = $max_upload_size +php_admin_value[upload_max_filesize] = $max_upload_size +php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru +php_admin_value[open_basedir] = $open_basedir +php_admin_flag[allow_url_fopen] = on +php_admin_flag[file_upload] = on +php_admin_flag[session.cookie_httponly] = on +php_admin_flag[allow_url_include] = off +php_admin_value[session.save_handler] = files +php_admin_flag[output_buffering] = off + +_EOF + + } + else{ + $OUT .= '; RoudnCube is disabled'; + } +} +} + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/10SQL_DATABASE b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/10SQL_DATABASE new file mode 100644 index 0000000..f474431 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/10SQL_DATABASE @@ -0,0 +1,44 @@ +$config = array(); + +// ---------------------------------- +// SQL DATABASE +// ---------------------------------- + +// Database connection string (DSN) for read+write operations +// Format (compatible with PEAR MDB2): db_provider://user:password@host/database +// Currently supported db_providers: mysql, pgsql, sqlite, mssql or sqlsrv +// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php +// NOTE: for SQLite use absolute path: 'sqlite:////full/path/to/sqlite.db?mode=0646' +{ + $OUT .= " \$config['db_dsnw'] = 'mysql://"; + $OUT .= $roundcube{DbUser} . ":"; + $OUT .= $roundcube{DbPassword} . "\@localhost/"; + $OUT .= $roundcube{DbName} . "';"; +} + +// Database DSN for read-only operations (if empty write database will be used) +// useful for database replication +$config['db_dsnr'] = ''; + +// Disable the use of already established dsnw connections for subsequent reads +$config['db_dsnw_noread'] = false; + +// use persistent db-connections +// beware this will not "always" work as expected +// see: http://www.php.net/manual/en/features.persistent-connections.php +$config['db_persistent'] = false; + +// you can define specific table (and sequence) names prefix +$config['db_prefix'] = ''; + +// Mapping of table names and connections to use for ALL operations. +// This can be used in a setup with replicated databases and a DB master +// where read/write access to cache tables should not go to master. +$config['db_table_dsn'] = array( +// 'cache' => 'r', +// 'cache_index' => 'r', +// 'cache_thread' => 'r', +// 'cache_messages' => 'r', +); + + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/20LOGGING_DEBUGGING b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/20LOGGING_DEBUGGING new file mode 100644 index 0000000..bfe0994 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/20LOGGING_DEBUGGING @@ -0,0 +1,46 @@ +// ---------------------------------- +// LOGGING/DEBUGGING +// ---------------------------------- + +// system error reporting, sum of: 1 = log; 4 = show, 8 = trace +$config['debug_level'] = 1; + +// log driver: 'syslog' or 'file'. +$config['log_driver'] = 'file'; + +// date format for log entries +// (read http://php.net/manual/en/function.date.php for all format characters) +$config['log_date_format'] = 'd-M-Y H:i:s O'; + +// Syslog ident string to use, if using the 'syslog' log driver. +$config['syslog_id'] = 'roundcube'; + +// Syslog facility to use, if using the 'syslog' log driver. +// For possible values see installer or http://php.net/manual/en/function.openlog.php +$config['syslog_facility'] = LOG_USER; + +// Activate this option if logs should be written to per-user directories. +// Data will only be logged if a directry // exists and is writable. +$config['per_user_logging'] = false; + +// Log sent messages to /sendmail or to syslog +$config['smtp_log'] = true; + +// Log successful/failed logins to /userlogins or to syslog +$config['log_logins'] = false; + +// Log session authentication errors to /session or to syslog +$config['log_session'] = false; + +// Log SQL queries to /sql or to syslog +$config['sql_debug'] = false; + +// Log IMAP conversation to /imap or to syslog +$config['imap_debug'] = false; + +// Log LDAP conversation to /ldap or to syslog +$config['ldap_debug'] = false; + +// Log SMTP conversation to /smtp or to syslog +$config['smtp_debug'] = false; + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/30IMAP b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/30IMAP new file mode 100644 index 0000000..b1862d0 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/30IMAP @@ -0,0 +1,109 @@ +// ---------------------------------- +// IMAP +// ---------------------------------- + +// The mail host chosen to perform the log-in. +// Leave blank to show a textbox at login, give a list of hosts +// to display a pulldown menu or set one host as string. +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %s - domain name after the '@' from e-mail address provided at login screen +// For example %n = mail.domain.tld, %t = domain.tld +// WARNING: After hostname change update of mail_host column in users table is +// required to match old user data records with the new host. + {$OUT .= " \$config['imap_host'] = 'ssl://$DomainName:$imaps{TCPPort}';\n";} + +// TCP port used for IMAP connections +//{$OUT .= " \$config['default_port'] = $imaps{TCPPort};\n";} + +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use +// best server supported one) +$config['imap_auth_type'] = null; + +// IMAP socket context options +// See http://php.net/manual/en/context.ssl.php +// The example below enables server certificate validation +//$config['imap_conn_options'] = array( +// 'ssl' => array( +// 'verify_peer' => true, +// 'verify_depth' => 3, +// 'cafile' => '/etc/openssl/certs/ca.crt', +// ), +// ); +$config['imap_conn_options'] = array( + 'ssl' => array( + 'verify_peer' => true, + 'allow_self_signed' => true, + 'peer_name' => '{$DomainName}', + ), + ); + +// IMAP connection timeout, in seconds. Default: 0 (use default_socket_timeout) +$config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$config['imap_auth_pw'] = null; + +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically +$config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$config['imap_ns_personal'] = null; +$config['imap_ns_other'] = null; +$config['imap_ns_shared'] = null; + +// By default IMAP capabilities are readed after connection to IMAP server +// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list +// after login. Set to True if you've got this case. +$config['imap_force_caps'] = false; + +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +// Deprecated: Use imap_disabled_caps = array('LIST-EXTENDED') +$config['imap_force_lsub'] = false; + +// Some server configurations (e.g. Courier) doesn't list folders in all namespaces +// Enable this option to force listing of folders in all namespaces +$config['imap_force_ns'] = false; + +// List of disabled imap extensions. +// Use if your IMAP server has broken implementation of some feature +// and you can't remove it from CAPABILITY string on server-side. +// For example UW-IMAP server has broken ESEARCH. +// Note: Because the list is cached, re-login is required after change. +$config['imap_disabled_caps'] = array(); + +// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. +$config['imap_cache'] = null; + +// Enables messages cache. Only 'db' cache is supported. +// This requires an IMAP server that supports QRESYNC and CONDSTORE +// extensions (RFC7162). See synchronize() in program/lib/Roundcube/rcube_imap_cache.php +// for further info, or if you experience syncing problems. +$config['messages_cache'] = false; + +// Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w +$config['imap_cache_ttl'] = '10d'; + +// Lifetime of messages cache. Possible units: s, m, h, d, w +$config['messages_cache_ttl'] = '10d'; + +// Maximum cached message size in kilobytes. +// Note: On MySQL this should be less than (max_allowed_packet - 30%) +$config['messages_cache_threshold'] = 50; + + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/40SMTP b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/40SMTP new file mode 100644 index 0000000..5d6c06e --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/40SMTP @@ -0,0 +1,70 @@ +// ---------------------------------- +// SMTP +// ---------------------------------- + +// SMTP server host (for sending mails). +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// If left blank, the PHP mail() function is used +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld + {$OUT .= " \$config['smtp_host'] = 'ssl://localhost:$sqpsmtpd{'TCPPort'}';\n";} + + +// SMTP port (default is 25; use 587 for STARTTLS or 465 for the +// deprecated SSL over SMTP (aka SMTPS)) +// {$OUT .= "\$config['smtp_port'] = $sqpsmtpd{'TCPPort'};\n";} + +// SMTP username (if required) if you use %u as the username Roundcube +// will use the current username for login +{$OUT .= "\$config['smtp_user'] = '%u';\n";} + +// SMTP password (if required) if you use %p as the password Roundcube +// will use the current user's password for login +{$OUT .= "\$config['smtp_pass'] = '%p';\n";} + +// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$config['smtp_auth_pw'] = null; + +// SMTP HELO host +// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages +// Leave this blank and you will get the server variable 'server_name' or +// localhost if that isn't defined. +$config['smtp_helo_host'] = ''; + +// SMTP connection timeout, in seconds. Default: 0 (use default_socket_timeout) +// Note: There's a known issue where using ssl connection with +// timeout > 0 causes connection errors (https://bugs.php.net/bug.php?id=54511) +$config['smtp_timeout'] = 0; + +// SMTP socket context options +// See http://php.net/manual/en/context.ssl.php +// The example below enables server certificate validation, and +// requires 'smtp_timeout' to be non zero. +// $config['smtp_conn_options'] = array( +// 'ssl' => array( +// 'verify_peer' => true, +// 'verify_depth' => 3, +// 'cafile' => '/etc/openssl/certs/ca.crt', +// ), +// ); +$config['smtp_conn_options'] = array( + 'ssl' => array( + 'verify_peer' => false, + 'allow_self_signed' => true, + 'peer_name' => '{$DomainName}', + ), + ); + + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/50LDAP b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/50LDAP new file mode 100644 index 0000000..29ab75a --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/50LDAP @@ -0,0 +1,9 @@ +// ---------------------------------- +// LDAP +// ---------------------------------- + +// Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache'. +$config['ldap_cache'] = 'db'; + +// Lifetime of LDAP cache. Possible units: s, m, h, d, w +$config['ldap_cache_ttl'] = '10m'; diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/60SYSTEM b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/60SYSTEM new file mode 100644 index 0000000..a32448d --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/60SYSTEM @@ -0,0 +1,252 @@ +// ---------------------------------- +// SYSTEM +// ---------------------------------- + +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +$config['enable_installer'] = false; + +// don't allow these settings to be overriden by the user +$config['dont_override'] = array(); + +// define which settings should be listed under the 'advanced' block +// which is hidden by default +$config['advanced_prefs'] = array(); + +// provide an URL where a user can get support for this Roundcube installation +// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! +$config['support_url'] = ''; + +// replace Roundcube logo with this image +// specify an URL relative to the document root of this Roundcube installation +// an array can be used to specify different logos for specific template files, '*' for default logo +// for example array("*" => "/images/roundcube_logo.png", "messageprint" => "/images/roundcube_logo_print.png") +$config['skin_logo'] = null; + +// automatically create a new Roundcube user when log-in the first time. +// a new user will be created once the IMAP login succeeds. +// set to false if only registered users can use this service +$config['auto_create_user'] = true; + +// Enables possibility to log in using email address from user identities +$config['user_aliases'] = false; + +// use this folder to store log files (must be writeable for apache user) +// This is used by the 'file' log driver. +$config['log_dir'] = '/var/log/roundcubemail/'; + +// use this folder to store temp files (must be writeable for apache user) +$config['temp_dir'] = '/var/lib/roundcubemail/'; + +// expire files in temp_dir after 48 hours +// possible units: s, m, h, d, w +$config['temp_dir_ttl'] = '48h'; + +// enforce connections over https +// with this option enabled, all non-secure connections will be redirected. +// set the port for the ssl connection as value of this option if it differs from the default 443 +$config['force_https'] = false; + +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. +$config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$config['login_autocomplete'] = 2; + +// Forces conversion of logins to lower case. +// 0 - disabled, 1 - only domain part, 2 - domain and local part. +// If users authentication is case-insensitive this must be enabled. +// Note: After enabling it all user records need to be updated, e.g. with query: +// UPDATE users SET username = LOWER(username); +$config['login_lc'] = 2; + +// Includes should be interpreted as PHP files +$config['skin_include_php'] = false; + +// display software version on login screen +$config['display_version'] = false; + +// Session lifetime in minutes +$config['session_lifetime'] = 10; + +// Session domain: .example.org +$config['session_domain'] = ''; + +// Session name. Default: 'roundcube_sessid' +$config['session_name'] = null; + +// Session authentication cookie name. Default: 'roundcube_sessauth' +$config['session_auth_name'] = null; + +// Session path. Defaults to PHP session.cookie_path setting. +$config['session_path'] = null; + +// Backend to use for session storage. Can either be 'db' (default), 'memcache' or 'php' +// If set to 'memcache', a list of servers need to be specified in 'memcache_hosts' +// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed +// Setting this value to 'php' will use the default session save handler configured in PHP +$config['session_storage'] = 'db'; + +// Use these hosts for accessing memcached +// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file +$config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); + +// check client IP in session authorization +$config['ip_check'] = false; + +// List of trusted proxies +// X_FORWARDED_* and X_REAL_IP headers are only accepted from these IPs +$config['proxy_whitelist'] = array(); + +// check referer of incoming requests +$config['referer_check'] = false; + +// X-Frame-Options HTTP header value sent to prevent from Clickjacking. +// Possible values: sameorigin|deny. Set to false in order to disable sending them +$config['x_frame_options'] = 'sameorigin'; + +// this key is used to encrypt the users imap password which is stored +// in the session record (and the client cookie if remember password is enabled). +// please provide a string of exactly 24 chars. +{ +use MIME::Base64 qw(encode_base64); +open( RANDOM, "/dev/urandom" ); +my $buf; +read( RANDOM, $buf, 17); +my $pwd = encode_base64($buf); +chomp $pwd; +close RANDOM; +$OUT .= "\$config['des_key'] = \'$pwd\' ;\n"; +} + +// Automatically add this domain to user names for login +// Only for IMAP servers that require full e-mail addresses for login +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$config['username_domain'] = ''; + +// Force domain configured in username_domain to be used for login. +// Any domain in username will be replaced by username_domain. +$config['username_domain_forced'] = false; + +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$config['mail_domain'] = ''; + +// Password charset. +// Use it if your authentication backend doesn't support UTF-8. +// Defaults to ISO-8859-1 for backward compatibility +$config['password_charset'] = 'ISO-8859-1'; + +// How many seconds must pass between emails sent by a user +$config['sendmail_delay'] = 0; + +// Maximum number of recipients per message. Default: 0 (no limit) +$config['max_recipients'] = 0; + +// Maximum allowednumber of members of an address group. Default: 0 (no limit) +// If 'max_recipients' is set this value should be less or equal +$config['max_group_members'] = 0; + +// Name your service. This is displayed on the login screen and in the window title +$config['product_name'] = 'Roundcube Webmail'; + +// Add this user-agent to message headers when sending +$config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; + +// try to load host-specific configuration +// see http://trac.roundcube.net/wiki/Howto_Config for more details +$config['include_host_config'] = false; + +// path to a text file which will be added to each sent message +// paths are relative to the Roundcube root folder +$config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$config['generic_message_footer_html'] = ''; + +// add a received header to outgoing mails containing the creators IP and hostname +$config['http_received_header'] = false; + +// Whether or not to encrypt the IP address and the host name +// these could, in some circles, be considered as sensitive information; +// however, for the administrator, these could be invaluable help +// when tracking down issues. +$config['http_received_header_encrypt'] = false; + +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection +$config['mail_header_delimiter'] = NULL; + +// number of chars allowed for line when wrapping text. +// text wrapping is done when composing/sending messages +$config['line_length'] = 72; + +// send plaintext messages as format=flowed +$config['send_format_flowed'] = true; + +// According to RFC2298, return receipt envelope sender address must be empty. +// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses. +$config['mdn_use_from'] = false; + +// Set identities access level: +// 0 - many identities with possibility to edit all params +// 1 - many identities with possibility to edit all params but not email address +// 2 - one identity with possibility to edit all params +// 3 - one identity with possibility to edit all params but not email address +// 4 - one identity with possibility to edit only signature +$config['identities_level'] = 0; + +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$config['client_mimetypes'] = null; # null == default + +// Path to a local mime magic database file for PHPs finfo extension. +// Set to null if the default path should be used. +$config['mime_magic'] = null; + +// Absolute path to a local mime.types mapping table file. +// This is used to derive mime-types from the filename extension or vice versa. +// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, +// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +$config['mime_types'] = '/etc/mime.types'; + +// path to imagemagick identify binary +$config['im_identify_path'] = null; + +// path to imagemagick convert binary +$config['im_convert_path'] = null; + +// Size of thumbnails from image attachments displayed below the message content. +// Note: whether images are displayed at all depends on the 'inline_images' option. +// Set to 0 to display images in full size. +$config['image_thumbnail_size'] = 240; + +// maximum size of uploaded contact photos in pixel +$config['contact_photo_size'] = 160; + +// Enable DNS checking for e-mail address validation +$config['email_dns_check'] = false; + +// Disables saving sent messages in Sent folder (like gmail) (Default: false) +// Note: useful when SMTP server stores sent mail in user mailbox +$config['no_save_sent_messages'] = false; + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE new file mode 100644 index 0000000..c392ecd --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE @@ -0,0 +1,142 @@ +// ---------------------------------- +// USER INTERFACE +// ---------------------------------- + +// default messages sort column. Use empty value for default server's sorting, +// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' +$config['message_sort_col'] = ''; + +// default messages sort order +$config['message_sort_order'] = 'DESC'; + +// These cols are shown in the message list. Available cols are: +// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' +$config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); + +// the default locale setting (leave empty for auto-detection) +// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR +$config['language'] = null; + +// use this format for date display (date or strftime format) +$config['date_format'] = 'Y-m-d'; + +// give this choice of date formats to the user to select from +// Note: do not use ambiguous formats like m/d/Y +$config['date_formats'] = array('Y-m-d', 'Y/m/d', 'Y.m.d', 'd-m-Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); + +// use this format for time display (date or strftime format) +$config['time_format'] = 'H:i'; + +// give this choice of time formats to the user to select from +$config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); + +// use this format for short date display (derived from date_format and time_format) +$config['date_short'] = 'D H:i'; + +// use this format for detailed date/time formatting (derived from date_format and time_format) +$config['date_long'] = 'Y-m-d H:i'; + +// store draft message is this mailbox +// leave blank if draft messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['drafts_mbox'] = 'Drafts'; + +// store spam messages in this mailbox +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['junk_mbox'] = 'junkmail'; + +// store sent message is this mailbox +// leave blank if sent messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['sent_mbox'] = 'sent-mail'; + +// move messages to this folder when deleting them +// leave blank if they should be deleted directly +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['trash_mbox'] = 'Trash'; + +// display these folders separately in the mailbox list. +// these folders will also be displayed with localized names +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$config['default_folders'] = array('INBOX', 'Drafts', 'sent-mail', 'junkmail', 'Trash'); + +// Disable localization of the default folder names listed above +$config['show_real_foldernames'] = false; + +// automatically create the above listed default folders on first login +$config['create_default_folders'] = true; + +// protect the default folders from renames, deletes, and subscription changes +$config['protect_default_folders'] = true; + +// if in your system 0 quota means no limit set this option to true +$config['quota_zero_as_unlimited'] = false; + +// Make use of the built-in spell checker. It is based on GoogieSpell. +// Since Google only accepts connections over https your PHP installatation +// requires to be compiled with Open SSL support +$config['enable_spellcheck'] = true; + +// Enables spellchecker exceptions dictionary. +// Setting it to 'shared' will make the dictionary shared by all users. +$config['spellcheck_dictionary'] = false; + +// Set the spell checking engine. Possible values: +// - 'googie' - the default +// - 'pspell' - requires the PHP Pspell module and aspell installed +// - 'enchant' - requires the PHP Enchant module +// - 'atd' - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API +// Since Google shut down their public spell checking service, you need to +// connect to a Nox Spell Server when using 'googie' here. Therefore specify the 'spellcheck_uri' +$config['spellcheck_engine'] = 'googie'; + +// For locally installed Nox Spell Server or After the Deadline services, +// please specify the URI to call it. +// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 or +// the After the Deadline package from http://www.afterthedeadline.com. +// Leave empty to use the public API of service.afterthedeadline.com +$config['spellcheck_uri'] = ''; + +// These languages can be selected for spell checking. +// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); +// Leave empty for default set of available language. +$config['spellcheck_languages'] = NULL; + +// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) +$config['spellcheck_ignore_caps'] = false; + +// Makes that words with numbers will be ignored (e.g. g00gle) +$config['spellcheck_ignore_nums'] = false; + +// Makes that words with symbols will be ignored (e.g. g@@gle) +$config['spellcheck_ignore_syms'] = false; + +// Use this char/string to separate recipients when composing a new message +$config['recipients_separator'] = ','; + +// Number of lines at the end of a message considered to contain the signature. +// Increase this value if signatures are not properly detected and colored +$config['sig_max_lines'] = 15; + +// don't let users set pagesize to more than this value if set +$config['max_pagesize'] = 200; + +// Minimal value of user's 'refresh_interval' setting (in seconds) +$config['min_refresh_interval'] = 60; + +// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. +// By default refresh time is set to 1 second. You can set this value to true +// or any integer value indicating number of seconds. +$config['upload_progress'] = false; + +// Specifies for how many seconds the Undo button will be available +// after object delete action. Currently used with supporting address book sources. +// Setting it to 0, disables the feature. +$config['undo_timeout'] = 0; + +// A static list of canned responses which are immutable for the user +$config['compose_responses_static'] = array( +// array('name' => 'Canned Response 1', 'text' => 'Static Response One'), +// array('name' => 'Canned Response 2', 'text' => 'Static Response Two'), +); + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS new file mode 100644 index 0000000..51fbd3f --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS @@ -0,0 +1,70 @@ +// ---------------------------------- +// ADDRESSBOOK SETTINGS +// ---------------------------------- + +// This indicates which type of address book to use. Possible choises: +// 'sql' (default), 'ldap' and ''. +// If set to 'ldap' then it will look at using the first writable LDAP +// address book as the primary address book and it will not display the +// SQL address book in the 'Address Book' view. +// If set to '' then no address book will be displayed or only the +// addressbook which is created by a plugin (like CardDAV). +$config['address_book_type'] = 'sql'; + +// In order to enable public ldap search, configure an array like the Verisign +// example further below. if you would like to test, simply uncomment the example. +// Array key must contain only safe characters, ie. a-zA-Z0-9_ + $config['ldap_public']['Local_LDAP'] = array('hosts' => array('localhost:389'), + +{ + $OUT .= " 'base_dn' \=\> " ."'". esmith::util::ldapBase($DomainName)."',"; +} + + 'search_fields' => array('Email' => 'mail', 'Name' => 'cn'), + 'name_field' => 'cn', + 'email_field' => 'mail', + 'jobtitle_field' => 'title', + 'phone:work_field' => 'telephoneNumber', + 'street_field' => 'street', + 'zipcode_field' => 'postalCode', + 'region_field' => 'st', + 'locality_field' => 'l', + 'country_field' => 'c', + 'organization_field' => 'o', + 'department_field' => 'ou', + 'scope' => 'sub', + 'fuzzy_search' => 1); + + +// An ordered array of the ids of the addressbooks that should be searched +// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); +{ + $OUT .= "\$config['autocomplete_addressbooks'] = array('sql','Local_LDAP');"; + $OUT .= "\$config['globaladdressbook_autocomplete'] = true;"; +} + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$config['autocomplete_min_length'] = 1; + +// Number of parallel autocomplete requests. +// If there's more than one address book, n parallel (async) requests will be created, +// where each request will search in one address book. By default (0), all address +// books are searched in one request. +$config['autocomplete_threads'] = 0; + +// Max. numer of entries in autocomplete popup. Default: 15. +$config['autocomplete_max'] = 15; + +// show address fields in this order +// available placeholders: \{street\}, \{locality\}, \{zipcode\}, \{country\}, \{region\} +$config['address_template'] = '\{street\}
\{locality\} \{zipcode\}
\{country\} \{region\}'; + +// Matching mode for addressbook search (including autocompletion) +// 0 - partial (*abc*), default +// 1 - strict (abc) +// 2 - prefix (abc*) +// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode +$config['addressbook_search_mode'] = 0; + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/90USER_PREFERENCES b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/90USER_PREFERENCES new file mode 100644 index 0000000..5e51cb8 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/90USER_PREFERENCES @@ -0,0 +1,197 @@ +// ---------------------------------- +// USER PREFERENCES +// ---------------------------------- + +// Use this charset as fallback for message decoding +$config['default_charset'] = 'ISO-8859-1'; + +// skin name: folder from skins/ +$config['skin'] = '{ # for 1.5 we use larry and classic, elastic are vailable, for 1.6 only elastic is available. +$OUT = (-d "/usr/share/roundcubemail/skins/larry") ? "larry" : "elastic"}'; + +// Enables using standard browser windows (that can be handled as tabs) +// instead of popup windows +$config['standard_windows'] = false; + +// show up to X items in messages list view +$config['mail_pagesize'] = 50; + +// show up to X items in contacts list view +$config['addressbook_pagesize'] = 50; + +// sort contacts by this col (preferably either one of name, firstname, surname) +$config['addressbook_sort_col'] = 'surname'; + +// the way how contact names are displayed in the list +// 0: display name +// 1: (prefix) firstname middlename surname (suffix) +// 2: (prefix) surname firstname middlename (suffix) +// 3: (prefix) surname, firstname middlename (suffix) +$config['addressbook_name_listing'] = 0; + +// use this timezone to display date/time +// valid timezone identifers are listed here: php.net/manual/en/timezones.php +// 'auto' will use the browser's timezone settings +$config['timezone'] = 'auto'; + +// prefer displaying HTML messages +$config['prefer_html'] = true; + +// display remote inline images +// 0 - Never, always ask +// 1 - Ask if sender is not in address book +// 2 - Always show inline images +$config['show_images'] = 0; + +// open messages in new window +$config['message_extwin'] = false; + +// open message compose form in new window +$config['compose_extwin'] = false; + +// compose html formatted messages by default +// 0 - never, 1 - always, 2 - on reply to HTML message, 3 - on forward or reply to HTML message +$config['htmleditor'] = 0; + +// show pretty dates as standard +$config['prettydate'] = true; + +// save compose message every 300 seconds (5min) +$config['draft_autosave'] = 300; + +// default setting if preview pane is enabled +$config['preview_pane'] = false; + +// Mark as read when viewed in preview pane (delay in seconds) +// Set to -1 if messages in preview pane should not be marked as read +$config['preview_pane_mark_read'] = 0; + +// Clear Trash on logout +$config['logout_purge'] = false; + +// Compact INBOX on logout +$config['logout_expunge'] = false; + +// Display attached images below the message body +$config['inline_images'] = true; + +// Encoding of long/non-ascii attachment names: +// 0 - Full RFC 2231 compatible +// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) +// 2 - Full 2047 compatible +$config['mime_param_folding'] = 1; + +// Set true if deleted messages should not be displayed +// This will make the application run slower +$config['skip_deleted'] = false; + +// Set true to Mark deleted messages as read as well as deleted +// False means that a message's read status is not affected by marking it as deleted +$config['read_when_deleted'] = true; + +// Set to true to never delete messages immediately +// Use 'Purge' to remove messages marked as deleted +$config['flag_for_deletion'] = false; + +// Default interval for auto-refresh requests (in seconds) +// These are requests for system state updates e.g. checking for new messages, etc. +// Setting it to 0 disables the feature. +$config['refresh_interval'] = 60; + +// If true all folders will be checked for recent messages +$config['check_all_folders'] = false; + +// If true, after message delete/move, the next message will be displayed +$config['display_next'] = true; + +// Default messages listing mode. One of 'threads' or 'list'. +$config['default_list_mode'] = 'list'; + +// 0 - Do not expand threads +// 1 - Expand all threads automatically +// 2 - Expand only threads with unread messages +$config['autoexpand_threads'] = 0; + +// When replying: +// -1 - don't cite the original message +// 0 - place cursor below the original message +// 1 - place cursor above original message (top posting) +$config['reply_mode'] = 0; + +// When replying strip original signature from message +$config['strip_existing_sig'] = true; + +// Show signature: +// 0 - Never +// 1 - Always +// 2 - New messages only +// 3 - Forwards and Replies only +$config['show_sig'] = 1; + +// Use MIME encoding (quoted-printable) for 8bit characters in message body +$config['force_7bit'] = false; + +// Defaults of the search field configuration. +// The array can contain a per-folder list of header fields which should be considered when searching +// The entry with key '*' stands for all folders which do not have a specific list set. +// Please note that folder names should to be in sync with $config['default_folders'] +$config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); + +// Defaults of the addressbook search field configuration. +$config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); + +// 'Delete always' +// This setting reflects if mail should be always deleted +// when moving to Trash fails. This is necessary in some setups +// when user is over quota and Trash is included in the quota. +$config['delete_always'] = false; + +// Directly delete messages in Junk instead of moving to Trash +$config['delete_junk'] = false; + +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +// Note: This can be used only if smtp_server is non-empty +$config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$config['reply_same_folder'] = false; + +// Sets default mode of Forward feature to "forward as attachment" +$config['forward_attachment'] = false; + +// Defines address book (internal index) to which new contacts will be added +// By default it is the first writeable addressbook. +// Note: Use '0' for built-in address book. +$config['default_addressbook'] = null; + +// Enables spell checking before sending a message. +$config['spellcheck_before_send'] = false; + +// Skip alternative email addresses in autocompletion (show one address per contact) +$config['autocomplete_single'] = false; + +// Default font for composed HTML message. +// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, +// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana +$config['default_font'] = 'Verdana'; + +// Default font size for composed HTML message. +// Supported sizes: 8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt +$config['default_font_size'] = '10pt'; + +// Enables display of email address with name instead of a name (and address in title) +$config['message_show_email'] = false; + +// Default behavior of Reply-All button: +// 0 - Reply-All always +// 1 - Reply-List if mailing list is detected +$config['reply_all_mode'] = 0; diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/95PLUGINS b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/95PLUGINS new file mode 100644 index 0000000..4849cc4 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/95PLUGINS @@ -0,0 +1,27 @@ +// ---------------------------------- +// PLUGINS +// ---------------------------------- + +// List of active plugins (in plugins/ directory) +//Here we declare our activated plugins. If you want to add plugins, please do the following db command in a root terminal + +//config setprop roundcube PluginsList "plugin1,plugin2,plugin3" +//Then issue +//signal-event conf-roundcube or signal-event roundcube-update + +//The default list is : globaladdressbook,calendar,libcalendaring,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve + +{ use esmith::ConfigDB; + my $DB = esmith::ConfigDB->open_ro; + my $plugins = $DB->get_prop('roundcube','PluginsList') || ""; + my @plugs = split(',',$plugins); + my @plugd ; + for my $p (@plugs) { + push @plugd, $p if -d "/usr/share/roundcubemail/plugins/$p"; + } + @plugs=@plugd; + s/^(.*)$/"\1"/ for @plugs; + $plugins = join(',',@plugs); + $OUT .= "\$config['plugins'] = array($plugins);"; +} + diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/template-begin b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/template-begin new file mode 100644 index 0000000..6270cb3 --- /dev/null +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/template-begin @@ -0,0 +1,14 @@ +{ + $OUT = < diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/10setsieveport b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/10setsieveport new file mode 100644 index 0000000..e5535ca --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/10setsieveport @@ -0,0 +1,38 @@ +{ + # This snippet sets the managesieve_port config option of the plugin if Sieve service is enabled + # otherwise, the default value of "null" is kept for this config option. + + use esmith::ConfigDB; + my $cdb = esmith::ConfigDB->open_ro || die "Couldn't open ConfigDB\n"; + + my $sievestatus = $cdb->get_prop('sieve','status') || 'disabled'; + my $sieveport = $cdb->get_prop('sieve','TCPPort') || 'null'; + + $OUT .= "// managesieve server port. When empty the port will be determined automatically\n"; + $OUT .= "// using getservbyname() function, with 4190 as a fallback.\n"; + + if ($sievestatus eq 'enabled') { + $OUT .= "\$config['managesieve_port'] = $sieveport; \n"; + } + else { + $OUT .= "\$config['managesieve_port'] = null; \n"; + } + $OUT .= "// managesieve server address (and optional port), default is localhost.\n"; + $OUT .= "// Replacement variables supported in host name:\n"; + $OUT .= "// %h - user's IMAP hostname\n"; + $OUT .= "// %n - http hostname ($_SERVER['SERVER_NAME'])\n"; + $OUT .= "// %d - domain (http hostname without the first part)\n"; + $OUT .= "// For example %n = mail.domain.tld, %d = domain.tld\n"; + $OUT .= "// If port is omitted it will be determined automatically using getservbyname()\n"; + $OUT .= "// function, with 2000 or 4190 as a fallback (depending on current version).\n"; + $OUT .= "// Note: Add tls:// prefix to enable explicit STARTTLS\n"; + $OUT .= "// or add ssl:// prefix to enable implicit SSL.\n"; + if ($sievestatus eq 'enabled') { + $OUT .= "\$config['managesieve_host'] = 'localhost:$sieveport'; \n"; + } + else { + $OUT .= "\$config['managesieve_host'] = null; \n"; + } + + +} diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/20default b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/20default new file mode 100644 index 0000000..2bc3fe8 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/20default @@ -0,0 +1,58 @@ +// authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL +// or none. Optional, defaults to best method supported by server. +$config['managesieve_auth_type'] = null; + +// Optional managesieve authentication identifier to be used as authorization proxy. +// Authenticate as a different user but act on behalf of the logged in user. +// Works with PLAIN and DIGEST-MD5 auth. +$config['managesieve_auth_cid'] = null; + +// Optional managesieve authentication password to be used for imap_auth_cid +$config['managesieve_auth_pw'] = null; + +// use or not TLS for managesieve server connection +// Note: tls:// prefix in managesieve_host is also supported +$config['managesieve_usetls'] = false; + +// default contents of filters script (eg. default spam filter) +$config['managesieve_default'] = '/etc/dovecot/sieve/global'; + +// The name of the script which will be used when there's no user script +$config['managesieve_script_name'] = 'managesieve'; + +// Sieve RFC says that we should use UTF-8 endcoding for mailbox names, +// but some implementations does not covert UTF-8 to modified UTF-7. +// Defaults to UTF7-IMAP +$config['managesieve_mbox_encoding'] = 'UTF-8'; + +// I need this because my dovecot (with listescape plugin) uses +// ':' delimiter, but creates folders with dot delimiter +$config['managesieve_replace_delimiter'] = ''; + +// disabled sieve extensions (body, copy, date, editheader, encoded-character, +// envelope, environment, ereject, fileinto, ihave, imap4flags, index, +// mailbox, mboxmetadata, regex, reject, relational, servermetadata, +// spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc. +// Note: not all extensions are implemented +$config['managesieve_disabled_extensions'] = array(); + +// Enables debugging of conversation with sieve server. Logs it into /sieve +$config['managesieve_debug'] = false; + +// Enables features described in http://wiki.kolab.org/KEP:14 +$config['managesieve_kolab_master'] = false; + +// Script name extension used for scripts including. Dovecot uses '.sieve', +// Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled. +$config['managesieve_filename_extension'] = '.sieve'; + +// List of reserved script names (without extension). +// Scripts listed here will be not presented to the user. +$config['managesieve_filename_exceptions'] = array(); + +// List of domains limiting destination emails in redirect action +// If not empty, user will need to select domain from a list +$config['managesieve_domains'] = array(); + +// Supported methods of notify extension. Default: 'mailto' +$config['managesieve_notify_methods'] = array('mailto'); diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/30showvacation b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/30showvacation new file mode 100644 index 0000000..18be946 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/30showvacation @@ -0,0 +1,7 @@ +// Enables separate management interface for vacation responses (out-of-office) +// 0 - no separate section (roundcube default), +// 1 - add Vacation section (new SME default), +// 2 - add Vacation section, but hide Filters section +$config['managesieve_vacation'] = 1; + +?> diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/template-begin b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/template-begin new file mode 100644 index 0000000..6270cb3 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/managesieve/config.inc.php/template-begin @@ -0,0 +1,14 @@ +{ + $OUT = < verbatim RC username as reported by rcmail->get_user_name(). Depending on config loginuser@domain or login +// %i => username used to login to imap. usually equal to %s +// %e => user email +// %l, %u => email localpart (%u is for backward compatibility) +// %d => email domain +// %h => IMAP Host +$config["nextcloud_attachment_username"] = "%u"; + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/30dont_try_mail_password b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/30dont_try_mail_password new file mode 100644 index 0000000..ae645d5 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/30dont_try_mail_password @@ -0,0 +1,4 @@ +// Don't try the email password at all, because we know it won't work +// Defaults to false, i.e. try the password +$config["nextcloud_attachment_dont_try_mail_password"] = false; + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/33folder b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/33folder new file mode 100644 index 0000000..2368c5c --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/33folder @@ -0,0 +1,12 @@ +// Name for the sub-folder to upload to +// Defaults to "Mail Attachments" +// Can't be sub-folder of sub-folder link folder/sub +$config["nextcloud_attachment_folder"] = "{$roundcube{'nextcloudFolder'}||'Mail Attachments'}"; + +// Translate the folder name according to the users configured locale +// When activating this $config["nextcloud_attachment_folder"] has to be an array +// of locale => name, e.g. +// $config["nextcloud_attachment_folder"] = ["en_US" => "Mail Attachments", "de_DE" => "E-Mail Anhänge"] +// If locale doesn't exist, en_US or first will be used +// Defaults to false +$config["nextcloud_attachment_folder_translate_name"] = false; diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/35softlimit b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/35softlimit new file mode 100644 index 0000000..932da43 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/35softlimit @@ -0,0 +1,5 @@ +// Limit to show a warning at for large attachments. +// has to be smaller then $config['max_message_size'] +// set to null to disable +$config["nextcloud_attachment_softlimit"] = "{$roundcube{'NCsoftlimit'}||$qmail{'MaxMessageSize'}||'25M'}"; + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/37behavior b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/37behavior new file mode 100644 index 0000000..4205bcc --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/37behavior @@ -0,0 +1,6 @@ +// Behavior if $config['max_message_size'] is hit. +// "prompt" to show dialog a la outlook or apple +// "upload" to automatically upload without asking a la google +// Defaults to "prompt" +$config["nextcloud_attachment_behavior"] = "{$roundcube{'nextcloudBehavior'}||'prompt'}"; + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/40excludeUsers b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/40excludeUsers new file mode 100644 index 0000000..5f0c4c2 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/40excludeUsers @@ -0,0 +1,57 @@ +// List of users to exclude +// They won't be able to interact with the plugin at all +// No prompts, no automatic uploading, no settings. +// List by RC username or resolved username e.g. ["user@demo.com", "user"] +$config["nextcloud_attachment_exclude_users"] = []; + +// Exclude users listed by uid (you need add the mapping to the address book) or email in any of the following +// address books. This allows you to configure a hidden LDAP address book containing the users +// to exclude. +// +// Hide an addressbook by setting +// $config['ldap_public'][*] = [ +// ... +// 'hidden' => true, +// ... +// ]; +// in the global config. +// +// Add the uid mapping via +// $config['ldap_public'][*] = [ +// ... +// 'fieldmap' => [ +// ... +// //internal => ldapattr +// 'uid' => 'uid', +// ... +// ], +// ... +// ] +// in the global config. Replace mapped attribute with appropriate value for your directory e.g. cn +// And replace "*" with the appropriate address book name +$config["nextcloud_attachment_exclude_users_in_addr_books"] = []; + +// Exclude users that have a mapped value in an address book +// format [ [ 'address_book', 'mapped_attribute', 'matched_value' ], ... ] +// +// Resulting in every user listed in the address book "address_book" +// to be excluded if they have a "mapped_attribute", matching "matched_value". +// +// E.g. ['public', 'memberOf', 'cn=no_cloud,ou=groups,dc=example,dc=com'] +// +// multiple attributes and multiple address books are supported +$config["nextcloud_attachment_exclude_users_with_addr_book_value"] = []; + +// Exclude user that that are in a given group in an address book +// format [ [ 'address_book', 'group' ], ... ] +// +// Resulting in every user listed in the address book "address_book" that is +// is in group "group" to be excluded. You have to correctly configure the group +// mapping for the LDAP entry +// +// E.g. ['public', 'nocloud'] +// +// multiple groups and multiple address books are supported +$config["nextcloud_attachment_exclude_users_in_addr_book_group"] = []; + + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/60verify_https b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/60verify_https new file mode 100644 index 0000000..be8a3f4 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/60verify_https @@ -0,0 +1,4 @@ +// Enable/Disable certificate validation for https on WebDAV and API requests +// Defaults to true (enabled) +$config["nextcloud_attachment_verify_https"] = {$roundcube{'nextcloudVerifyCerts'}||'true'}; + diff --git a/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/template-begin b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/template-begin new file mode 100644 index 0000000..6270cb3 --- /dev/null +++ b/root/etc/e-smith/templates/usr/share/roundcubemail/plugins/nextcloud_attachments/config.inc.php/template-begin @@ -0,0 +1,14 @@ +{ + $OUT = <= 11.0 +Requires: smeserver-apache >= 11.0 +Requires: roundcubemail >= 1.6 +Requires: roundcubemail < 1.7 +Requires: composer >= 2.7.8 +Requires: git +#TODO either fuse with dovecot or put in core +#Requires: smeserver-dovecot-extras +Requires: jq +Requires: php-kolab-net-ldap3 +#Requires: roundcubemail_plugins +Obsoletes: roundcube +AutoReqProv: no + +%description +smeserver rpm to setup the roundcube IMAP mail client. + +%prep +%setup + +%build +perl createlinks + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + --dir /var/log/php/roundcube 'attr(0755,www,www)' \ + --dir /var/lib/php/roundcube 'attr(0755,www,www)' \ + --dir /var/lib/php/roundcube/tmp 'attr(0755,www,www)' \ + --dir /var/lib/php/roundcube/opcache 'attr(0755,www,www)' \ + --dir /var/lib/php/roundcube/session 'attr(0755,www,www)' \ + > %{name}-%{version}-filelist +echo "%doc COPYING" >> %{name}-%{version}-filelist + +%clean +cd .. +rm -rf %{name}-%{version} + +%pre +%preun + +%post + +%postun +#uninstall +if [ $1 = 0 ] ; then + /usr/bin/systemctl restart httpd-e-smith +fi + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) +%attr(755,root,root) /usr/bin/rcplugin_update.sh + +%changelog +* Sun Sep 01 2024 Jean-Philippe Pialasse 1.6-1.sme +- initial version for SME11 [SME: ] + +* Mon Mar 25 2024 Jean-Philippe Pialasse 1.2-24.sme +- fix temp event not ending because of interactive install of plugin [SME: 12530] +- stop altering php81 ini file [SME: 12529] +- workaround Composer could not detect the root package [SME: 12531] +- workaround roundcube/plugin-installer is also a root requirement [SME: 12532] + +* Fri Mar 22 2024 Jean-Philippe Pialasse 1.2-23.sme +- fix roundcube unable to send mail after smeserver-qpsmtpd disabling auth on port 25 + +* Sat Feb 24 2024 Jean-Philippe Pialasse 1.2-21.sme +- add nextcloud_attachements plugin support [SME: 12489] +- simplify access setting using access(private,public)/status [SME: 12263] +- Requires roundcube >= 1.6 + up to php81, add dedicated php pool + using update event to config plugins + +* Tue Oct 31 2023 Brian Read 1.2-19.sme +- Update params for changes from v1.6 roundcube [SME: 12415] + +* Sun Dec 11 2022 Jean-Philippe Pialasse 1.2-18.sme +- fix previous patch [SME: 11430] + +* Sat Dec 10 2022 Jean-Philippe Pialasse 1.2-17.sme +- remove sieverules [SME: 11430] + change skin on availability for 1.6 + +* Wed Dec 07 2022 Jean-Philippe Pialasse 1.2-14.sme +- fix list of plugins and add composer [SME: 11430] + do not load in conf plugins without an actual folder. + +* Mon Aug 01 2022 Jean-Philippe Pialasse 1.2-12.sme +- update to httpd 2.4 access syntax [SME: 12059] + thanks to Vasarhelyi Zsolt +- accept self signed certificates for imap and smtp [SME: 11430] +- Use of undefined constant, quote around module names [SME: 11430] + +* Mon Apr 05 2021 Brian Read 1.2-11.sme +- Update spec file to take out plugin rpm [SME: 11430 ] + +* Sun Apr 04 2021 Brian Read 1.2-10.sme +- Add-update-event-in-createlinks-and-fix-smtp-port-in-config [SME: 11430] + +* Thu Mar 17 2016 stephane de Labrusse 1.2-9.sme +- Bump the version to force the composer update + +* Mon Sep 21 2015 stephane de Labrusse 1.2-8.sme +- libcalendaring calendar and tasklist are no more in the contribs + +* Wed Sep 02 2015 stephane de Labrusse 1.2-6.sme +- Initial release to contribs9 + +* Thu Apr 16 2015 stephane de labrusse 1.2-5 +- managesieve is no more used, I prefer to use sieverules (only for new installation) + +* Thu Apr 16 2015 stephane de labrusse 1.2-4 +- Carddav is a hugly plugin, it is now removed +- Added a migrate fragment to remove it from DB + +* Sun Feb 22 2015 stephane de labrusse 1.2-3 +- Added sieverules plugins +- Added a link for kolab-LDAP3 + +* Thu Feb 12 2015 stephane de labrusse 1.2-2 +- Add a migrate fragment if the dns of the main domain is set to external +- Plugins are updated by the %post section +- Communication beetween roundcube and imap are ssl based +- Password and login fields are saved, a random key encrypt them in cookies +- the installer folder is forbidden by apache and by configuration file +- The configuration is now templated in serveral files + +* Wed Feb 11 2015 stephane de labrusse 1.2-1 +- Switch to roundcubemail from Epel. + +* Sun Nov 30 2014 stephane de labrusse 1.1-5 +- code developed by Mats Schuh +- split the config.inc.php; now the sieve vacation gets its own template + +* Fri Nov 28 2014 stephane de labrusse 1.1-4 +- code developed by Mats Schuh +- Add a template in /opt/roundcube/plugins/managesieve/config.inc.php +- Allow managesieve following the status of sieve. + +* Fri Sep 05 2014 stephane de labrusse 1.1-3 +- added a template in httpd.conf to forbid to browse /tmp /config /logs + +* Sun May 11 2014 stephane de labrusse 1.1-2 +- adapted /etc/e-smith/sql/init/80roundcube for mysql tasklists Table + +* Sat May 10 2014 stephane de labrusse 1.1-1 +- removed openbasedir and uploadtmpdir for roundcube compatibility + +* Mon Apr 14 2014 stephane de labrusse 1.0-7 + Wed Apr 14 2014 --> Wed Apr 09 2014 or Mon Apr 14 2014 or Wed Apr 16 2014 or .... +- removed the copymessage plugin activated + +* Wed Apr 02 2014 stephane de labrusse 1.0-6 +- corrected issue with the tasklists db issue +- added auto-update for composer in the script rcplugin_update.sh + +* Sat Feb 15 2014 stephane de labrusse 1.0-5 +- adapted to the upstream update eg roundcube 1.0 + +* Sun Nov 10 2013 JP Pialasse 0.9-18.sme +- cleaning build section [SME: 7981] + +* Wed Nov 6 2013 JP Pialasse 0.9-17.sme +- corrected bug: typo in patch1 [SME: 7981] + +* Tue Nov 05 2013 JP Pialasse 0.9-16.sme + Thu Nov 05 2013 --> Thu Oct 31 2013 or Tue Nov 05 2013 or Thu Nov 07 2013 or .... +- corrected bug [SME: 7981] +- moved out spec file sql init and other event and actions + +* Sat Oct 26 2013 stephane de labrusse 0.9.15 +- Change the version of roundcubemail-plugins-kolab to 3.02 : http://git.kolab.org/roundcubemail-plugins-kolab/ + +* Sun Oct 20 2013 stephane de labrusse 0.9.14 +- Change the original https_only + +* Sun Oct 13 2013 stephane de labrusse 0.9.13 + Sat Oct 13 2013 --> Sat Oct 12 2013 or Sun Oct 13 2013 or Sat Oct 19 2013 or .... +- Add the Kolab calendar plugin : http://git.kolab.org/roundcubemail-plugins-kolab/tree/plugins/calendar +- Add the context menu for right click, very useful : http://www.tehinterweb.co.uk/roundcube/#picontextmenu +- Add the "Mark as Junk 2" to kick spam to junkmail : http://www.tehinterweb.co.uk/roundcube/#pimarkasjunk2 + +* Sat Oct 5 2013 stephane de Labrusse 0.9.12 +- Add the SME Server internal LDAP addressbooks in roundcube + +* Sat Sep 21 2013 Stephane de Labrusse 0.9.11 +- Add carddav functionnality http://www.crash-override.net/carddav.html + +* Wed Jun 05 2013 Stephane de Labrusse 0.9.9 +- add a tmp folder in httpd.conf +* Mon Jun 03 2013 Stephane de Labrusse +- requires sme8 0.9-8 + +* Thu Jun 28 2007 Stephen Noble +- add domain property to use existing host or domain 0.9-7 + +* Thu Jun 21 2007 Stephen Noble +- update .spec file 0.9-6 + +* Thu Jun 21 2007 Stephen Noble +- automate config file creation +- proxypass to fix https redirect bug +- [0.9-5] + +* Fri Apr 6 2007 Stephen Noble +- revert mysql password creation +- [0.9-4] + +* Wed Feb 14 2007 Stephen Noble +- remove phpinfo +- simplify mysql password creation +- don't alias / in httpd for nul values in URL +- [0.9-3] + +* Thu Dec 14 2006 Stephen Noble +- php_admin_value eaccelerator enabled +- [0.9-2] + +* Tue Dec 12 2006 Stephen Noble +- initial release +- [0.9-1]