* Sun Sep 01 2024 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-1.sme
- initial version for SME11 [SME: ]
This commit is contained in:
parent
dc13554e0b
commit
c0a6540f34
81
createlinks
81
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");
|
||||
|
1
root/etc/e-smith/db/accounts/defaults/roundcube/type
Normal file
1
root/etc/e-smith/db/accounts/defaults/roundcube/type
Normal file
@ -0,0 +1 @@
|
||||
reserved
|
@ -0,0 +1 @@
|
||||
roundcube
|
@ -0,0 +1 @@
|
||||
roundcube
|
@ -0,0 +1 @@
|
||||
RoundCube IMAP Client
|
@ -0,0 +1 @@
|
||||
globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve,nextcloud_attachments
|
@ -0,0 +1 @@
|
||||
public
|
@ -0,0 +1 @@
|
||||
enabled
|
@ -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');
|
||||
}
|
||||
}
|
20
root/etc/e-smith/db/configuration/migrate/80roundcube
Normal file
20
root/etc/e-smith/db/configuration/migrate/80roundcube
Normal file
@ -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() )));
|
||||
|
||||
}
|
@ -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");
|
||||
}
|
||||
}
|
2
root/etc/e-smith/events/actions/roundcube-conf
Normal file
2
root/etc/e-smith/events/actions/roundcube-conf
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
/usr/bin/rcplugin_update.sh
|
@ -0,0 +1 @@
|
||||
PERMS=0750
|
@ -0,0 +1,3 @@
|
||||
UID="root"
|
||||
GID="www"
|
||||
PERMS=0640
|
29
root/etc/e-smith/templates/etc/e-smith/sql/init/80roundcube
Normal file
29
root/etc/e-smith/templates/etc/e-smith/sql/init/80roundcube
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
my $db = $roundcube{DbName} || 'roundcube';
|
||||
my $user = $roundcube{DbUser} || 'roundcube';
|
||||
my $pass = $roundcube{DbPassword} || 'changeme';
|
||||
$OUT .= <<END
|
||||
#! /bin/sh
|
||||
if [ -d /var/lib/mysql/$db ]; then
|
||||
#these plugins are no more in the core
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/database/SQL/mysql.initial.sql
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
|
||||
exit
|
||||
fi
|
||||
/usr/bin/mysql <<EOF
|
||||
CREATE DATABASE $db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
use $db;
|
||||
source /usr/share/roundcubemail/SQL/mysql.initial.sql;
|
||||
use mysql;
|
||||
GRANT ALL PRIVILEGES ON $db.* TO $user\@localhost
|
||||
IDENTIFIED BY '$pass';
|
||||
flush privileges;
|
||||
EOF
|
||||
|
||||
#these plugins are no more in the core
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/database/SQL/mysql.initial.sql
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
|
||||
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
|
||||
END
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
{
|
||||
my $status = $roundcube{'status'} || "disabled";
|
||||
return " # roundcube-status is disabled."
|
||||
unless $status eq 'enabled';
|
||||
|
||||
my $domain = $roundcube{'domain'} || "disabled";
|
||||
return " # no hostname or domain for roundcube defined"
|
||||
if $domain eq 'disabled';
|
||||
|
||||
my $DocRoot = "/usr/share/roundcubemail";
|
||||
|
||||
$OUT = "";
|
||||
$OUT .= "\n";
|
||||
$OUT .= "# Redirect an existing hostname or domain to $DocRoot.\n";
|
||||
$OUT .= "<VirtualHost 0.0.0.0:80>\n";
|
||||
$OUT .= " ServerName $roundcube{'domain'}\n";
|
||||
$OUT .= " DocumentRoot $DocRoot\n";
|
||||
$OUT .= "</VirtualHost>\n";
|
||||
$OUT .= "<VirtualHost 0.0.0.0:443>\n";
|
||||
$OUT .= " ServerName $roundcube{'domain'}\n";
|
||||
$OUT .= " DocumentRoot $DocRoot\n";
|
||||
$OUT .= " SSLEngine on\n";
|
||||
$OUT .= "</VirtualHost>\n";
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
{
|
||||
my $status = $roundcube{'status'} || "disabled";
|
||||
return " # roundcube is disabled in this VirtualHost"
|
||||
unless $status eq 'enabled';
|
||||
|
||||
$OUT = "";
|
||||
my $allow = "ip $localAccess";
|
||||
my $satisfy = 'all';
|
||||
my $name = $roundcube{'Name'} || 'RoundCube IMAP Client';
|
||||
my $version = 81; # php version to use
|
||||
|
||||
for ('exit-if-none')
|
||||
{
|
||||
if ( (exists($roundcube{'access'})) && ($roundcube{'access'} eq 'public') )
|
||||
{
|
||||
$allow = 'all granted';
|
||||
$satisfy = 'all';
|
||||
}
|
||||
|
||||
$OUT .= "#------------------------------------------------------------\n";
|
||||
$OUT .= "# roundcube - $name\n";
|
||||
$OUT .= "#------------------------------------------------------------\n";
|
||||
|
||||
{
|
||||
if ((exists $roundcube{'URL'}) && ($roundcube{'URL'} ne ''))
|
||||
{ $OUT .= "Alias /$roundcube{'URL'} /usr/share/roundcubemail\n"; }
|
||||
}
|
||||
|
||||
$OUT .= "Alias /roundcube /usr/share/roundcubemail\n";
|
||||
$OUT .= "Alias /roundcubemail /usr/share/roundcubemail\n";
|
||||
|
||||
$OUT .= "\n";
|
||||
$OUT .= "<Directory /usr/share/roundcubemail>\n";
|
||||
$OUT .= " Require $allow\n";
|
||||
$OUT .= " AddType application/x-httpd-php .php\n";
|
||||
$OUT .= "<FilesMatch \.php\$\>\n";
|
||||
$OUT .= "SetHandler \"proxy:unix:/var/run/php-fpm/php$version-roundcube.sock|fcgi://localhost\"\n";
|
||||
$OUT .= "</FilesMatch>\n";
|
||||
$OUT .= "</Directory>\n";
|
||||
$OUT .= qq (
|
||||
<Directory /usr/share/roundcubemail/installer/>
|
||||
Require all denied
|
||||
</Directory>
|
||||
);
|
||||
}
|
||||
}
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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',
|
||||
);
|
||||
|
||||
|
@ -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 <log_dir>/<username>/ exists and is writable.
|
||||
$config['per_user_logging'] = false;
|
||||
|
||||
// Log sent messages to <log_dir>/sendmail or to syslog
|
||||
$config['smtp_log'] = true;
|
||||
|
||||
// Log successful/failed logins to <log_dir>/userlogins or to syslog
|
||||
$config['log_logins'] = false;
|
||||
|
||||
// Log session authentication errors to <log_dir>/session or to syslog
|
||||
$config['log_session'] = false;
|
||||
|
||||
// Log SQL queries to <log_dir>/sql or to syslog
|
||||
$config['sql_debug'] = false;
|
||||
|
||||
// Log IMAP conversation to <log_dir>/imap or to syslog
|
||||
$config['imap_debug'] = false;
|
||||
|
||||
// Log LDAP conversation to <log_dir>/ldap or to syslog
|
||||
$config['ldap_debug'] = false;
|
||||
|
||||
// Log SMTP conversation to <log_dir>/smtp or to syslog
|
||||
$config['smtp_debug'] = false;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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}',
|
||||
),
|
||||
);
|
||||
|
||||
|
@ -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';
|
@ -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;
|
||||
|
@ -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'),
|
||||
);
|
||||
|
@ -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\}<br/>\{locality\} \{zipcode\}<br/>\{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;
|
||||
|
@ -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;
|
@ -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);";
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
$OUT = <<HERE;
|
||||
<?php
|
||||
/*
|
||||
HERE
|
||||
|
||||
$OUT .=
|
||||
Text::Template::_load_text("/etc/e-smith/templates-default/template-begin");
|
||||
|
||||
$OUT .= <<HERE;
|
||||
*/
|
||||
HERE
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
?>
|
@ -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";
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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 <log_dir>/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');
|
@ -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;
|
||||
|
||||
?>
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
$OUT = <<HERE;
|
||||
<?php
|
||||
/*
|
||||
HERE
|
||||
|
||||
$OUT .=
|
||||
Text::Template::_load_text("/etc/e-smith/templates-default/template-begin");
|
||||
|
||||
$OUT .= <<HERE;
|
||||
*/
|
||||
HERE
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Full URL to the Nextcloud server
|
||||
// e.g. https://example.com/nextcloud if in sub-path
|
||||
// or https://cloud.example.com if in root
|
||||
$config["nextcloud_attachment_server"] = "https://{$roundcube{'nextcloudURI'}||$nextcloud{'Virtualhost'}||$DomainName."/nextcloud"}";
|
||||
|
@ -0,0 +1,11 @@
|
||||
// Username resolving strategy from internal Roundcube
|
||||
// username which usually is the email address e.g. user@example.com or IMAP User
|
||||
// Placeholders are replaced as following
|
||||
// %s => 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";
|
||||
|
@ -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;
|
||||
|
@ -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;
|
@ -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'}";
|
||||
|
@ -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'}";
|
||||
|
@ -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"] = [];
|
||||
|
||||
|
@ -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'};
|
||||
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
$OUT = <<HERE;
|
||||
<?php
|
||||
/*
|
||||
HERE
|
||||
|
||||
$OUT .=
|
||||
Text::Template::_load_text("/etc/e-smith/templates-default/template-begin");
|
||||
|
||||
$OUT .= <<HERE;
|
||||
*/
|
||||
HERE
|
||||
|
||||
}
|
14
root/usr/bin/rcplugin_update.sh
Executable file
14
root/usr/bin/rcplugin_update.sh
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
pathroundcube=$(pwd)
|
||||
cd /usr/share/roundcubemail
|
||||
# composer seems to have issues to detect roundcubemail 1.6.6 version... so:
|
||||
# we could also get it from index.php header.
|
||||
export COMPOSER_ROOT_VERSION=`rpm -q roundcubemail --queryformat "%{VERSION}"`
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer require johndoh/contextmenu --with-all-dependencies --no-interaction
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer require johndoh/globaladdressbook ~2.1 --with-all-dependencies --no-interaction
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer require roundcube/larry ~1.6.0 --with-all-dependencies --no-interaction
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer require bennet0496/nextcloud_attachments --with-all-dependencies --no-interaction
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer self-update --no-interaction
|
||||
COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php83 -d allow_url_fopen=1 /usr/bin/composer update --with-all-dependencies --no-interaction
|
||||
cd $pathroundcube
|
||||
|
0
root/var/lib/php/roundcube/opcache/.gitignore
vendored
Normal file
0
root/var/lib/php/roundcube/opcache/.gitignore
vendored
Normal file
0
root/var/lib/php/roundcube/session/.gitignore
vendored
Normal file
0
root/var/lib/php/roundcube/session/.gitignore
vendored
Normal file
0
root/var/lib/php/roundcube/tmp/.gitignore
vendored
Normal file
0
root/var/lib/php/roundcube/tmp/.gitignore
vendored
Normal file
0
root/var/log/php/roundcube/.gitignore
vendored
Normal file
0
root/var/log/php/roundcube/.gitignore
vendored
Normal file
239
smeserver-roundcube.spec
Normal file
239
smeserver-roundcube.spec
Normal file
@ -0,0 +1,239 @@
|
||||
%define name smeserver-roundcube
|
||||
%define version 1.6
|
||||
%define release 1
|
||||
|
||||
Summary: smserver rpm to setup roundcube, an IMAP mail client
|
||||
Name: %{name}
|
||||
Version: %{version}
|
||||
Release: %{release}%{?dist}
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
License: GNU GPL version 2
|
||||
URL: https://www.koozali.org
|
||||
Group: SMEserver/addon
|
||||
BuildRoot: %{_tmppath}/%{name}-buildroot
|
||||
Prefix: %{_prefix}
|
||||
BuildArchitectures: noarch
|
||||
BuildRequires: smeserver-devtools
|
||||
Requires: smeserver-release >= 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 <jpp@koozali.org> 1.6-1.sme
|
||||
- initial version for SME11 [SME: ]
|
||||
|
||||
* Mon Mar 25 2024 Jean-Philippe Pialasse <jpp@koozali.org> 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 <jpp@koozali.org> 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 <tests@pialasse.com> 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 <brianr@koozali.org> 1.2-19.sme
|
||||
- Update params for changes from v1.6 roundcube [SME: 12415]
|
||||
|
||||
* Sun Dec 11 2022 Jean-Philippe Pialasse <tests@pialasse.com> 1.2-18.sme
|
||||
- fix previous patch [SME: 11430]
|
||||
|
||||
* Sat Dec 10 2022 Jean-Philippe Pialasse <tests@pialasse.com> 1.2-17.sme
|
||||
- remove sieverules [SME: 11430]
|
||||
change skin on availability for 1.6
|
||||
|
||||
* Wed Dec 07 2022 Jean-Philippe Pialasse <tests@pialasse.com> 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 <tests@pialasse.com> 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 <brianr@bjsystems.co.uk> 1.2-11.sme
|
||||
- Update spec file to take out plugin rpm [SME: 11430 ]
|
||||
|
||||
* Sun Apr 04 2021 Brian Read <brianr@bjsystems.co.uk> 1.2-10.sme
|
||||
- Add-update-event-in-createlinks-and-fix-smtp-port-in-config [SME: 11430]
|
||||
|
||||
* Thu Mar 17 2016 stephane de Labrusse <stephdl@de-labrusse.fr> 1.2-9.sme
|
||||
- Bump the version to force the composer update
|
||||
|
||||
* Mon Sep 21 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 1.2-8.sme
|
||||
- libcalendaring calendar and tasklist are no more in the contribs
|
||||
|
||||
* Wed Sep 02 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 1.2-6.sme
|
||||
- Initial release to contribs9
|
||||
|
||||
* Thu Apr 16 2015 stephane de labrusse <stephdl@de-labrusse.fr> 1.2-5
|
||||
- managesieve is no more used, I prefer to use sieverules (only for new installation)
|
||||
|
||||
* Thu Apr 16 2015 stephane de labrusse <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 1.2-3
|
||||
- Added sieverules plugins
|
||||
- Added a link for kolab-LDAP3
|
||||
|
||||
* Thu Feb 12 2015 stephane de labrusse <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 1.2-1
|
||||
- Switch to roundcubemail from Epel.
|
||||
|
||||
* Sun Nov 30 2014 stephane de labrusse <stephdl@de-labrusse.fr> 1.1-5
|
||||
- code developed by Mats Schuh <m.schuh@neckargeo.net>
|
||||
- split the config.inc.php; now the sieve vacation gets its own template
|
||||
|
||||
* Fri Nov 28 2014 stephane de labrusse <stephdl@de-labrusse.fr> 1.1-4
|
||||
- code developed by Mats Schuh <m.schuh@neckargeo.net>
|
||||
- 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 <stephdl@de-labrusse.fr> 1.1-3
|
||||
- added a template in httpd.conf to forbid to browse /tmp /config /logs
|
||||
|
||||
* Sun May 11 2014 stephane de labrusse <stephdl@de-labrusse.fr> 1.1-2
|
||||
- adapted /etc/e-smith/sql/init/80roundcube for mysql tasklists Table
|
||||
|
||||
* Sat May 10 2014 stephane de labrusse <stephdl@de-labrusse.fr> 1.1-1
|
||||
- removed openbasedir and uploadtmpdir for roundcube compatibility
|
||||
|
||||
* Mon Apr 14 2014 stephane de labrusse <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 1.0-5
|
||||
- adapted to the upstream update eg roundcube 1.0
|
||||
|
||||
* Sun Nov 10 2013 JP Pialasse <tests@pialasse.com> 0.9-18.sme
|
||||
- cleaning build section [SME: 7981]
|
||||
|
||||
* Wed Nov 6 2013 JP Pialasse <tests@pialasse.com> 0.9-17.sme
|
||||
- corrected bug: typo in patch1 [SME: 7981]
|
||||
|
||||
* Tue Nov 05 2013 JP Pialasse <tests@pialasse.com> 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 <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 0.9.14
|
||||
- Change the original https_only
|
||||
|
||||
* Sun Oct 13 2013 stephane de labrusse <stephdl@de-labrusse.fr> 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 <stephdl@de-labrusse.fr> 0.9.12
|
||||
- Add the SME Server internal LDAP addressbooks in roundcube
|
||||
|
||||
* Sat Sep 21 2013 Stephane de Labrusse <stephdl@de-labrusse.fr> 0.9.11
|
||||
- Add carddav functionnality http://www.crash-override.net/carddav.html
|
||||
|
||||
* Wed Jun 05 2013 Stephane de Labrusse <stephdl@de-labrusse.fr> 0.9.9
|
||||
- add a tmp folder in httpd.conf
|
||||
* Mon Jun 03 2013 Stephane de Labrusse <stephdl@de-labrusse.fr>
|
||||
- requires sme8 0.9-8
|
||||
|
||||
* Thu Jun 28 2007 Stephen Noble <stephen@dungog.net>
|
||||
- add domain property to use existing host or domain 0.9-7
|
||||
|
||||
* Thu Jun 21 2007 Stephen Noble <stephen@dungog.net>
|
||||
- update .spec file 0.9-6
|
||||
|
||||
* Thu Jun 21 2007 Stephen Noble <stephen@dungog.net>
|
||||
- automate config file creation
|
||||
- proxypass to fix https redirect bug
|
||||
- [0.9-5]
|
||||
|
||||
* Fri Apr 6 2007 Stephen Noble <stephen@dungog.net>
|
||||
- revert mysql password creation
|
||||
- [0.9-4]
|
||||
|
||||
* Wed Feb 14 2007 Stephen Noble <stephen@dungog.net>
|
||||
- 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 <support@dungog.net>
|
||||
- php_admin_value eaccelerator enabled
|
||||
- [0.9-2]
|
||||
|
||||
* Tue Dec 12 2006 Stephen Noble <support@dungog.net>
|
||||
- initial release
|
||||
- [0.9-1]
|
Loading…
Reference in New Issue
Block a user