## ---------------------- ## - webmail.warenform.de ## - . roundcube.env.webmail.warenform.de ## - ## - END: webmail.warenform.de ## ---------------------------- ## ---------------------- ## - webmail2.warenform.de ## - . roundcube.env.webmail2.warenform.de ## - ## - END: webmail.warenform.de ## ---------------------------- ## ---------------------- ## - webmail.so36.net ## - . roundcube.env.webmail.so36.net ## - ## - END: webmail.so36.net ## ---------------------------- ## ---------------------- ## - webmail.interventionistische-linke.org ## - . roundcube.env.webmail.interventionistische-linke.org ## - ## - END: webmail.interventionistische-linke.org ## ---------------------------- ## ---------------------- ## - webmail.initiativenserver.de ## - . roundcube.env.webmail.initiativenserver.de ## - ## - END: webmail.interventionistische-linke.org ## ---------------------------- ## ---------------------- ## - webmail2.initiativenserver.de ## - . roundcube.env.webmail2.initiativenserver.de ## - ## - END: webmail.interventionistische-linke.org ## ---------------------------- ## ---------------------- ## - webmail2.oopen.de ## - . roundcube.env.webmail2.oopen.de ## - ## - END: webmail.oopen.de ## ---------------------------- ## ---------------------- ## - webmail.oopen.de ## - . roundcube.env.webmail.oopen.de ## - ## - END: webmail.oopen.de ## ---------------------------- ## ----------------------------------------------- # ## --- integrate jqueryui plugin for roundcube --- # ## ----------------------------------------------- # ## - jqueryui plugin comes with roundcube core distribution. So you have ## - only to register it. ## - register jqueryui plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "login_lang" to array plugins ## - $config['plugins'] = array('jqueryui'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## ----------------------------------------------- # ## --- integrate password plugin for roundcube --- # ## ----------------------------------------------- # cp $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/password/config.inc.php.dist \ $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/password/config.inc.php ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/password/config.inc.php ## - ## - adjust: ## - ## - $config['password_driver'] = 'sql'; ## - $config['password_confirm_current'] = true; ## - ## - $config['password_minimum_length'] = 8; ## - $config['password_require_nonalpha'] = true; ## - ## - NOTE: The database configuration data from POSTFIX Dateabase are needed !! ## - Put in your database credentials ## - ## - $config['password_db_dsn'] = '${_db_type}://${_db_user}:${_db_pass}@localhost/${_db_name}'; ## - ## - $config['password_query'] = 'UPDATE mailbox SET password=%p WHERE username=%u'; ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/password/config.inc.php ## - register password plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "password" to array plugins ## - $config['plugins'] = array('jqueryui', 'password'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## --------------------------------------------------- # ## --- Install vacation plugin bhusigen rc-vacation -- # ## --------------------------------------------------- # ## - see: https://github.com/bhuisgen/rc-vacation/ ## - requirements, if using datepicker: ## - - plugin jqueryui ## - Download from site https://github.com/bhuisgen/rc-vacation/ and ## - store archive in $WEBMAIL_BASEDIR ## - cd $WEBMAIL_BASEDIR rm rc-vacation-master.zip wget -O rc-vacation-master.zip https://github.com/bhuisgen/rc-vacation/archive/master.zip cd $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins unzip $WEBMAIL_BASEDIR/rc-vacation-master.zip ln -s rc-vacation-master $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation cp $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php.dist \ $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php if [ "$_db_type" = "pgsql" ];then ## -------------------------------------------------------------- ## ## - !! That (very long) part concerns to PostgeSQL Database !! - ## ## -------------------------------------------------------------- ## ## - Note: In the following sql statements set the correct AUTOREPLY domain !! ## - Also chnage the database parameters as yor needs ## - ## - edit configuration $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php ## - ## - $rcmail_config['vacation_gui_vacationdate'] = TRUE; ## - $rcmail_config['vacation_subject_default'] = 'Re: $SUBJECT'; ## - ## - $rcmail_config['vacation_gui_vacationforwarder'] = FALSE; ## - ## - $rcmail_config['vacation_dateformat'] = 'Y-m-d' ; ## - $rcmail_config['vacation_jquery_calendar'] = TRUE; ## - $rcmail_config['vacation_jquery_dateformat'] = 'yy-m-d'; ## - ## - $rcmail_config['vacation_forwarder_multiple'] = FALSE; ## - $rcmail_config['vacation_forwarder_separator'] = ','; ## - ## - $rcmail_config['vacation_driver'] = 'sql'; ## - ## - #configure your database connection to POSTFIX database ## - $rcmail_config['vacation_sql_dsn'] = '${_db_type}://${_db_user}:${_db_pass}@localhost/${_db_name}'; ## - ## - ## - # !! NOTE: You have to create postgres function udf_forwarders_out and ## - # udf_forwarders_in to get the following SQL statements working ## - # ## - ## - // read data queries ## - $rcmail_config['vacation_sql_read'] = ## - array( ## - "SELECT ## - subject AS vacation_subject, ## - body AS vacation_message, ## - date(activefrom) AS vacation_start, ## - date(activeuntil) AS vacation_end, ## - CASE WHEN vacation.active = TRUE THEN true ELSE false END AS vacation_enable, ## - udf_forwarders_out(%username,'$_autoreply_domain',',') AS vacation_forwarder ## - FROM vacation,alias ## - WHERE email=%username AND address=%username AND vacation.domain=%email_domain;" ## - ); ## - ## - ## - // write data queries ## - /* !! Wichtig: ## - Nur wenn rcmail_config['vacation_gui_vacationforwarder'] = FALSE ## - ## - NOTE: interval_time wird statisch gesetzt auf 86400 (1 Tag) ## - */ ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,activefrom,activeuntil,interval_time,created,active) " . ## - "VALUES (%email,%email_domain,%vacation_subject,%vacation_message," . ## - "to_timestamp(%vacation_start - extract(timezone from current_timestamp))," . ## - "to_timestamp(%vacation_end + 86399 - extract(timezone from current_timestamp))," . ## - "86400,NOW(),udf_set_active(%vacation_enable));", ## - "UPDATE alias SET goto = udf_forwarders_in(udf_forwarders_out(%email,'$_autoreply_domain',',')," . ## - "%email,'$_autoreply_domain',',',udf_set_active(%vacation_enable))" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ## - ); ## - ## - /* !! Wichtig: ## - Nur wenn rcmail_config['vacation_gui_vacationforwarder'] = TRUE ## - ## - NOTE: interval_time wird statisch gesetzt auf 86400 (1 Tag) ## - */ ## - /* ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,activefrom,activeuntil,interval_time,created,active) " . ## - "VALUES (%email,%email_domain,%vacation_subject,%vacation_message," . ## - "to_timestamp(%vacation_start - extract(timezone from current_timestamp))," . ## - "to_timestamp(%vacation_end + 86399 - extract(timezone from current_timestamp))," . ## - "86400,NOW(),udf_set_active(%vacation_enable));", ## - "UPDATE alias SET goto = udf_forwarders_in(%vacation_forwarder," . ## - "%email,'$_autoreply_domain',',',udf_set_active(%vacation_enable))" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ); ## - ## - !! Notice !! ## - Replace '$_autoreply_domain' string with the true vaction domain. ## - ## - i.e for oopen.de: :1,$s/\$_autoreply_domain/autoreply.oopen.de/gc ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php ## - create postfix trigger function udf_forwarders_out: ## - cat < /tmp/postgres.forwarders_out.sql CREATE LANGUAGE plpgsql; CREATE FUNCTION udf_forwarders_out(email_str text, vacation_domain text, list_seperator character) RETURNS text LANGUAGE plpgsql AS \$\$ DECLARE forward_str text; local_email_part TEXT; domain_email_part TEXT; BEGIN -- get list of forwarders -- SELECT goto INTO forward_str FROM alias WHERE address=email_str; -- entferne mailbox emailadresse -- forward_str = replace(forward_str, email_str, '' ); -- entferne vacation adresse -- local_email_part = substring(email_str, 1, position('@' in email_str) - 1); domain_email_part = substring(email_str, position('@' in email_str) + 1 ); forward_str = replace(forward_str, local_email_part || '#' || domain_email_part || '@' || vacation_domain, ''); -- enferne doppelte seperatorzeichen -- WHILE position( list_seperator || list_seperator in forward_str ) > 0 LOOP forward_str = replace(forward_str, list_seperator || list_seperator , ''); END LOOP; -- entferne erstes zeichen wenn es das seperatorzeichen ist -- IF substring(forward_str,1,1) = list_seperator THEN forward_str = substring(forward_str from 2); END IF; -- entferne letztes zeichen wenn es das seperatorzeichen ist -- IF substring(forward_str from char_length(forward_str)) = list_seperator THEN forward_str = substring(forward_str, 1, char_length(forward_str) - 1); END IF; -- forward_str = substring(forward_str from char_length(forward_str)); RETURN forward_str; END; \$\$; EOF ## - create function ## - ## - Note 1. ## - if datbase language plpgsql already exists, an error occurs. but you can ## - savely ignore that error ## - ## - Note 2. ## - if you create the function not as postfix database user, you have to ## - give the permission afterwards: ## - ALTER FUNCTION public.udf_forwarders_out(email_str text, vacation_domain text, list_seperator character) OWNER TO postfix; ## - But we will use the db postfix user (here also named postfix) ## - psql -Upostfix postfix < /tmp/postgres.forwarders_out.sql rm /tmp/postgres.forwarders_out.sql ## - create sql file for installing function udf_set_active: ## - cat < /tmp/postgres.set_active.sql CREATE LANGUAGE plpgsql; CREATE FUNCTION udf_set_active(vacation_enable text) RETURNS boolean LANGUAGE plpgsql AS \$\$ DECLARE return_val boolean; BEGIN return_val = 't'; IF vacation_enable = '' THEN return_val = 'f'; END IF; IF vacation_enable = '0' THEN return_val = 'f'; END IF; IF lower(vacation_enable) = 'false' THEN return_val = 'f'; END IF; RETURN return_val; END; \$\$; EOF ## - create function udf_set_active ## - ## - Note 1. ## - if datbase language plpgsql already exists, an error occurs. but you can ## - savely ignore that error ## - ## - Note 2. ## - if you create the function not as postfix database user, you have to ## - give the permission afterwards: ## - ALTER FUNCTION public.udf_forwarders_in(forewarders_str text, email_str text, vacation_domain text, list_seperator character, vacation_enable boolean) OWNER TO postfix; ## - But we will use the db postfix user (here also named postfix) ## - psql -Upostfix postfix < /tmp/postgres.set_active.sql rm /tmp/postgres.set_active.sql ## - create postfix database function udf_forwarders_in: ## - cat < /tmp/postgres.forwarders_in.sql CREATE LANGUAGE plpgsql; CREATE FUNCTION udf_forwarders_in(forewarders_str text, email_str text, vacation_domain text, list_seperator character, vacation_enable boolean) RETURNS text LANGUAGE plpgsql AS \$\$ DECLARE return_str text; local_email_part TEXT; domain_email_part TEXT; BEGIN return_str = email_str; IF vacation_enable THEN local_email_part = substring(email_str, 1, position('@' in email_str) - 1); domain_email_part = substring(email_str, position('@' in email_str) + 1 ); return_str = return_str || list_seperator || local_email_part || '#' || domain_email_part || '@' || vacation_domain; END IF; IF char_length(forewarders_str) > 7 THEN return_str = return_str || list_seperator || forewarders_str; END IF; RETURN return_str; END; \$\$; EOF ## - create function udf_forwarders_in ## - ## - Note 1. ## - if datbase language plpgsql already exists, an error occurs. but you can ## - savely ignore that error ## - ## - Note 2. ## - if you create the function not as postfix database user, you have to ## - give the permission afterwards: ## - ALTER FUNCTION public.udf_forwarders_in(forewarders_str text, email_str text, vacation_domain text, list_seperator character, vacation_enable boolean) OWNER TO postfix; ## - But we will use the db postfix user (here also named postfix) ## - psql -Upostfix postfix < /tmp/postgres.forwarders_in.sql rm /tmp/postgres.forwarders_in.sql elif [ "$_db_type" = "mysql" ];then ## ---------------------------------------------------------- ## ## - !! That (very long) part concerns to MySQL Database !! - ## ## ---------------------------------------------------------- ## ## - Note: In the following sql statements set the correct AUTOREPLY domain !! ## - Also chnage the database parameters as yor needs ## - ## - edit configuration $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php ## - ## - $rcmail_config['vacation_gui_vacationforwarder'] = FALSE; ## - $rcmail_config['vacation_forwarder_multiple'] = FALSE; ## - $rcmail_config['vacation_forwarder_separator'] = ','; ## - ## - $rcmail_config['vacation_driver'] = 'sql'; ## - ## - #configure your database connection to POSTFIX database ## - $rcmail_config['vacation_sql_dsn'] = '${_db_type}://${_db_user}:${_db_pass}@localhost/${_db_name}'; ## - ## - # !! NOTE: You have to create myql functions FORWARDERS_OUT and ## - # FORWARDERS_IN to get the following SQL read statement working ## - # ## - ## - // read data queries ## - /* - OLD: vcation.pl included in posfixadmin until version 2.3.7 ## - $rcmail_config['vacation_sql_read'] = ## - array("SELECT subject AS vacation_subject, body AS vacation_message, " . ## - "vacation.active AS vacation_enable, FORWARDERS_OUT(%username,'$_autoreply_domain',',') AS vacation_forwarder FROM vacation,alias " . ## - "WHERE email=%username AND address=%username AND vacation.domain=%email_domain;" ## - ); ## - *) ## - /* - NEW: vcation.pl included in posfixadmin since version 2.91 */ ## - $rcmail_config['vacation_sql_read'] = ## - array("SELECT subject AS vacation_subject, body AS vacation_message," . ## - "UNIX_TIMESTAMP(activefrom) AS vacation_start," . ## - "UNIX_TIMESTAMP(activeuntil) AS vacation_end," . ## - "vacation.active AS vacation_enable," . ## - "FORWARDERS_OUT(%username,'$_autoreply_domain',',') AS vacation_forwarder " . ## - "FROM vacation,alias " . ## - "WHERE email=%username AND address=%username AND vacation.domain=%email_domain;" ## - ); ## - ## - ## - // write data queries ## - /* !! Wichtig: ## - Nur wenn rcmail_config['vacation_gui_vacationforwarder'] = FALSE ## - */ ## - ## - /* - OLD: vcation.pl included in posfixadmin until version 2.3.7 ## - $rcmail_config['vacation_gui_vacationforwarder'] = FALSE; ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND " . ## - "domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,created," . ## - "active) VALUES (%email,%email_domain,%vacation_subject," . ## - "%vacation_message,NOW(),%vacation_enable);", ## - "UPDATE alias SET goto = FORWARDERS_IN(FORWARDERS_OUT(%email,'$_autoreply_domain',',')," . ## - "%email,'$_autoreply_domain',',',%vacation_enable)" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ); ## - /* ## - ## - /* - NEW: vcation.pl included in posfixadmin since version 2.91 */ ## - /* ## - $rcmail_config['vacation_gui_vacationforwarder'] = FALSE; ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,activefrom,activeuntil,interval_time,created,active) " . ## - "VALUES (%email,%email_domain,%vacation_subject,%vacation_message," . ## - "CONCAT(DATE(FROM_UNIXTIME(%vacation_start)), ' 00:00:00')," . ## - "CONCAT(DATE(FROM_UNIXTIME(%vacation_end)), ' 23:59:59')," . ## - "86400,NOW(),%vacation_enable);", ## - "UPDATE alias SET goto = FORWARDERS_IN(FORWARDERS_OUT(%email,'$_autoreply_domain',',')," . ## - "%email,'$_autoreply_domain',',',%vacation_enable)" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ); ## - */ ## - ## - /* !! Wichtig: ## - Nur wenn rcmail_config['vacation_gui_vacationforwarder'] = TRUE ## - */ ## - ## - /* ## - ## - /* - OLD: vcation.pl included in posfixadmin until version 2.3.7 ## - $rcmail_config['vacation_gui_vacationforwarder'] = TRUE; ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND " . ## - "domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,created," . ## - "active) VALUES (%email,%email_domain,%vacation_subject," . ## - "%vacation_message,NOW(),%vacation_enable);", ## - "UPDATE alias SET goto = FORWARDERS_IN(%vacation_forwarder," . ## - "%email,'$_autoreply_domain',',',%vacation_enable)" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ); ## - */ ## - ## - /* - NEW: vcation.pl included in posfixadmin since version 2.91 */ ## - $rcmail_config['vacation_gui_vacationforwarder'] = TRUE; ## - $rcmail_config['vacation_sql_write'] = ## - array("DELETE FROM vacation WHERE email=%email AND domain=%email_domain;", ## - "DELETE from vacation_notification WHERE on_vacation=%email;", ## - "INSERT INTO vacation (email,domain,subject,body,activefrom,activeuntil,interval_time,created,active) " . ## - "VALUES (%email,%email_domain,%vacation_subject,%vacation_message," . ## - "CONCAT(DATE(FROM_UNIXTIME(%vacation_start)), ' 00:00:00')," . ## - "CONCAT(DATE(FROM_UNIXTIME(%vacation_end)), ' 23:59:59')," . ## - "86400,NOW(),%vacation_enable);", ## - "UPDATE alias SET goto = FORWARDERS_IN(%vacation_forwarder," . ## - "%email,'$_autoreply_domain',',',%vacation_enable)" . ## - ", modified = NOW() " . ## - " WHERE address = %email" ## - ); ## - ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/vacation/config.inc.php ## - create function FORWARDERS_OUT: ## - cat < /tmp/FORWARDERS_OUT.sql DROP FUNCTION IF EXISTS FORWARDERS_OUT ; DELIMITER | CREATE FUNCTION FORWARDERS_OUT (email_str TEXT, vacation_domain TEXT , list_seperator CHAR) RETURNS TEXT DETERMINISTIC BEGIN DECLARE forward_str TEXT; DECLARE local_email_part TEXT; DECLARE domain_email_part TEXT; DECLARE first_char CHAR; DECLARE last_char CHAR; -- get list of forwarders -- SELECT goto INTO forward_str FROM alias WHERE address=email_str; -- entferne mailbox emailadresse -- SET forward_str = REPLACE(forward_str, email_str, '' ); -- SELECT REPLACE(forward_str, email_str, '' ) INTO forward_str; -- entferne vacation adresse -- SET local_email_part = SUBSTRING(email_str,1, LOCATE('@',email_str) - 1); SET domain_email_part = SUBSTRING(email_str, LOCATE('@',email_str) + 1, LENGTH(email_str)); SET forward_str = REPLACE(forward_str, CONCAT(local_email_part, "#" ,domain_email_part,"@", vacation_domain), ''); -- SELECT REPLACE(forward_str, CONCAT(list_seperator,list_seperator), list_seperator) INTO forward_str; -- enferne doppelte seperatorzeichen -- WHILE LOCATE(CONCAT(list_seperator,list_seperator) , forward_str) DO SET forward_str = REPLACE(forward_str, CONCAT(list_seperator,list_seperator), list_seperator); -- SELECT REPLACE(forward_str, CONCAT(list_seperator,list_seperator), list_seperator) INTO forward_str; END WHILE ; -- entferne erstes zeichen wenn es das seperatorzeichen ist -- IF LEFT(forward_str,1) = list_seperator THEN SET forward_str = SUBSTRING(forward_str FROM 2); -- SELECT SUBSTRING(forward_str FROM 2) INTO forward_str; END IF; -- entferne letztes zeichen wenn es das seperatorzeichen ist -- IF RIGHT(forward_str,1) = list_seperator THEN SET forward_str = SUBSTRING(forward_str , 1, LENGTH(forward_str) - 1); -- SELECT SUBSTRING(forward_str , 1, LENGTH(forward_str) - 1) INTO forward_str; END IF; RETURN forward_str; END | DELIMITER ; EOF ## - create function ## - ## - Note 1. ## - Create function as postfix database user ## - ## - The postfix databaseuser wil need 'Super_priv'. At MySQL monitor ## - (as mysql admin user i.e. root) type: ## - UPDATE user SET Super_priv = 'Y' WHERE User = 'postfix'; ## - ## - Note 2. ## - You can verify on mysql monitor (database postfix) with: ## - SHOW FUNCTION STATUS; ## - or see the code: ## - SHOW CREATE FUNCTION FORWARDERS_OUT; ## - mysql -upostfix -p postfix < /tmp/FORWARDERS_OUT.sql rm /tmp/FORWARDERS_OUT.sql ## - create database function FORWARDERS_IN: ## - cat < /tmp/FORWARDERS_IN.sql DROP FUNCTION IF EXISTS FOWARDERS_IN ; DELIMITER | CREATE FUNCTION FORWARDERS_IN (forewarders_str TEXT, email_str TEXT, vacation_domain TEXT , list_seperator CHAR , vacation_enable BOOLEAN) RETURNS TEXT DETERMINISTIC BEGIN DECLARE return_str TEXT; DECLARE local_email_part TEXT; DECLARE domain_email_part TEXT; SET return_str = email_str; IF vacation_enable THEN SET local_email_part = SUBSTRING(email_str,1, LOCATE('@',email_str) - 1); SET domain_email_part = SUBSTRING(email_str, LOCATE('@',email_str) + 1, LENGTH(email_str)); SET return_str = CONCAT(return_str, list_seperator, local_email_part, "#" ,domain_email_part,"@", vacation_domain); END IF; IF LENGTH(forewarders_str) > 2 THEN SET return_str = CONCAT(return_str, list_seperator, forewarders_str); END IF; RETURN return_str; END | DELIMITER ; EOF ## - create function FOWARDERS_IN ## - ## - Note 1. ## - Create function as postfix database user ## - ## - The postfix databaseuser wil need 'Super_priv'. At MySQL monitor ## - (as mysql admin user i.e. root) type: ## - UPDATE user SET Super_priv = 'Y' WHERE User = 'postfix'; ## - ## - Note 2. ## - You can verify on mysql monitor (database postfix) with: ## - SHOW FUNCTION STATUS; ## - or see the code: ## - SHOW CREATE FUNCTION FOWARDERS_IN; ## - mysql -upostfix -p postfix < /tmp/FORWARDERS_IN.sql rm /tmp/FORWARDERS_IN.sql else echo -e "\n\t[ ERROR ]: Unknown database type \"$_db_type\"" fo ## - register vacation plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "rc-vacation" to array plugins ## - $rcmail_config['plugins'] = array('jquery', 'password', 'vacation'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## -------------------------------------------------------- # ## --- Install plugin language selector on login screen --- # ## -------------------------------------------------------- # ## - see: https://github.com/hassansin/roundcube-login-language/ ## - Download from site https://github.com/hassansin/roundcube-login-language/ and ## - store archive in $WEBMAIL_BASEDIR ## - cd $WEBMAIL_BASEDIR rm login-language-master.zip wget -O login-language-master.zip https://github.com/hassansin/roundcube-login-language/archive/master.zip cd $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins unzip $WEBMAIL_BASEDIR/login-language-master.zip ln -s roundcube-login-language-master/ $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/login_lang cp $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/login_lang/config.inc.php.dist \ $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/login_lang/config.inc.php ## - edit config.php and set default language selection ## - ## - $config['language_dropdown_selected'] = 'de_DE'; ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/login_lang/config.inc.php ## - register language selector plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "login_lang" to array plugins ## - $config['plugins'] = array('login_lang', 'jqueryui', 'password', 'vacation'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## -------------------------------------------------- # ## --- integrate ContextMenu plugin for roundcube --- # ## -------------------------------------------------- # ## - see: https://github.com/JohnDoh/Roundcube-Plugin-Context-Menu ## - Download from site https://github.com/bhuisgen/rc-vacation/ and ## - store archive in $WEBMAIL_BASEDIR ## - cd $WEBMAIL_BASEDIR rm Roundcube-Plugin-Context-Menu-master.zip wget -O Roundcube-Plugin-Context-Menu-master.zip https://github.com/JohnDoh/Roundcube-Plugin-Context-Menu/archive/master.zip cd $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins unzip $WEBMAIL_BASEDIR/Roundcube-Plugin-Context-Menu-master.zip ln -s Roundcube-Plugin-Context-Menu-master $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/contextmenu ## - register ContextMenu plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "login_lang" to array plugins ## - $config['plugins'] = array('login_lang', 'jqueryui', 'password', 'vacation', 'contextmenu'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## ---------------------------------- # ## --- Install plugin markasjunk2 --- # ## ---------------------------------- # cd $WEBMAIL_BASEDIR rm Roundcube-Plugin-Mark-as-Junk-2-master.zip wget -O Roundcube-Plugin-Mark-as-Junk-2-master.zip https://github.com/JohnDoh/Roundcube-Plugin-Mark-as-Junk-2/archive/master.zip cd $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins unzip $WEBMAIL_BASEDIR/Roundcube-Plugin-Mark-as-Junk-2-master.zip ln -s Roundcube-Plugin-Mark-as-Junk-2-master $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/markasjunk2 cp $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/markasjunk2/config.inc.php.dist \ $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/plugins/markasjunk2/config.inc.php ## - register markasjunk2 plugin with roundcube ## - ## - edit $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php ## - ## - add "login_lang" to array plugins ## - $config['plugins'] = array('login_lang', 'jqueryui', 'password', 'vacation', 'contextmenu','markasjunk2'); ## - vim $WEBMAIL_BASEDIR/roundcubemail-${ROUNDCUBE_VERSION}/config/config.inc.php