From f798aa098a52e1fb7d9c8d0e91b072f74e677d6b Mon Sep 17 00:00:00 2001
From: Falko Timme <ft@falkotimme.com>
Date: Wed, 12 Feb 2014 10:10:10 -0500
Subject: [PATCH] - Implemented FS#3310 - add support for multiple email addresses in send copy to field (patch).
---
install/dist/lib/centos53.lib.php | 132 +++++++++++++++++++++++++++++++++++---------
1 files changed, 105 insertions(+), 27 deletions(-)
diff --git a/install/dist/lib/centos53.lib.php b/install/dist/lib/centos53.lib.php
index 17293fc..93083b5 100644
--- a/install/dist/lib/centos53.lib.php
+++ b/install/dist/lib/centos53.lib.php
@@ -30,57 +30,135 @@
class installer extends installer_dist {
+ public function configure_mailman($status = 'insert') {
+ global $conf;
+
+ $config_dir = $conf['mailman']['config_dir'].'/';
+ $full_file_name = $config_dir.'mm_cfg.py';
+ //* Backup exiting file
+ if(is_file($full_file_name)) {
+ copy($full_file_name, $config_dir.'mm_cfg.py~');
+ }
+
+ // load files
+ $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
+ $old_file = rf($full_file_name);
+
+ $old_options = array();
+ $lines = explode("\n", $old_file);
+ foreach ($lines as $line)
+ {
+ if (trim($line) != '' && substr($line, 0, 1) != '#')
+ {
+ @list($key, $value) = @explode("=", $line);
+ if (!empty($value))
+ {
+ $key = rtrim($key);
+ $old_options[$key] = trim($value);
+ }
+ }
+ }
+
+ $config_dir = $conf['mailman']['config_dir'].'/';
+ $full_file_name = $config_dir.'virtual_to_transport.sh';
+
+ //* Backup exiting virtual_to_transport.sh script
+ if(is_file($full_file_name)) {
+ copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
+ }
+
+ if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
+ copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
+ } else {
+ copy('tpl/mailman-virtual_to_transport.sh', $full_file_name);
+ }
+ chgrp($full_file_name, 'mailman');
+ chmod($full_file_name, 0750);
+
+ if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
+ exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
+
+ exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
+
+ $virtual_domains = '';
+ if($status == 'update')
+ {
+ // create virtual_domains list
+ $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
+
+ if(is_array($domainAll)) {
+ foreach($domainAll as $domain)
+ {
+ if ($domainAll[0]['domain'] == $domain['domain'])
+ $virtual_domains .= "'".$domain['domain']."'";
+ else
+ $virtual_domains .= ", '".$domain['domain']."'";
+ }
+ }
+ }
+ else
+ $virtual_domains = "' '";
+
+ $content = str_replace('{hostname}', $conf['hostname'], $content);
+ if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
+ $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
+ $content = str_replace('{virtual_domains}', $virtual_domains, $content);
+
+ wf($full_file_name, $content);
+ }
+
public function configure_amavis() {
global $conf;
-
+
// amavisd user config file
$configfile = 'fedora_amavisd_conf';
- if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf',$conf["courier"]["config_dir"].'/amavisd.conf~');
+ if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
- $content = rf("tpl/".$configfile.".master");
- $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
- $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
- $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
- $content = str_replace('{mysql_server_port}',$conf["mysql"]["port"],$content);
- $content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content);
- $content = str_replace('{hostname}',$conf['hostname'],$content);
- $content = str_replace('/var/spool/amavisd/clamd.sock','/var/run/clamav/clamd.sock',$content);
- wf($conf["amavis"]["config_dir"].'/amavisd.conf',$content);
-
-
+ if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
+ $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
+ $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
+ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
+ $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
+ $content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
+ $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
+ $content = str_replace('{hostname}', $conf['hostname'], $content);
+ $content = str_replace('/var/spool/amavisd/clamd.sock', '/var/run/clamav/clamd.sock', $content);
+ wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
+
+
// Adding the amavisd commands to the postfix configuration
$postconf_commands = array (
'content_filter = amavis:[127.0.0.1]:10024',
'receive_override_options = no_address_mappings'
);
-
+
// Make a backup copy of the main.cf file
- copy($conf["postfix"]["config_dir"].'/main.cf',$conf["postfix"]["config_dir"].'/main.cf~2');
-
+ copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
+
// Executing the postconf commands
foreach($postconf_commands as $cmd) {
$command = "postconf -e '$cmd'";
caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
}
-
+
// Append the configuration for amavisd to the master.cf file
- if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf',$conf["postfix"]["config_dir"].'/master.cf~');
+ if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~');
$content = rf($conf["postfix"]["config_dir"].'/master.cf');
// Only add the content if we had not addded it before
- if(!stristr($content,"127.0.0.1:10025")) {
+ if(!stristr($content, "127.0.0.1:10025")) {
unset($content);
- $content = rf("tpl/master_cf_amavis.master");
- af($conf["postfix"]["config_dir"].'/master.cf',$content);
+ $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master");
+ af($conf["postfix"]["config_dir"].'/master.cf', $content);
}
unset($content);
-
- removeLine('/etc/sysconfig/freshclam','FRESHCLAM_DELAY=disabled-warn # REMOVE ME',1);
- replaceLine('/etc/freshclam.conf','Example','# Example',1);
-
-
+
+ removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1);
+ replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
+
+
}
}
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1