diff --git a/interface/web/mail/mail_domain_dkim_create.php b/interface/web/mail/mail_domain_dkim_create.php index fa1e298a31f64ea59a1c899459589d623195d6d8..4769735c60c59070f2bce09cf92bc09f1252890e 100644 --- a/interface/web/mail/mail_domain_dkim_create.php +++ b/interface/web/mail/mail_domain_dkim_create.php @@ -124,8 +124,14 @@ function new_selector ($old_selector, $domain) { } //* get dkim-strength for server_id -$mail_server_id = $app->functions->intval( $app->db->queryOneRecord("SELECT server_id from mail_domain WHERE domain = ?", $_POST['domain']) ); -$dkim_strength = $app->functions->intval( $app->getconf->get_server_config($mail_server_id, 'mail')['dkim_strength'] ); +//$mail_server_id = $app->functions->intval( $app->db->queryOneRecord("SELECT server_id from mail_domain WHERE domain = ?", $_POST['domain']) ); +//$dkim_strength = $app->functions->intval( $app->getconf->get_server_config($mail_server_id, 'mail')['dkim_strength'] ); +$rec = $app->db->queryOneRecord("SELECT server_id from mail_domain WHERE domain = ?", $_POST['domain']); +$mail_server_id = $app->functions->intval($rec['server_id']); +unset ($rec); +$rec = $app->getconf->get_server_config($mail_server_id, 'mail'); +$dkim_strength = $app->functions->intval($rec['dkim_strength']); +unset ($rec); if ( empty($dkim_strength) ) $dkim_strength = 1024; switch ($_POST['action']) { diff --git a/interface/web/tools/resync_do.php b/interface/web/tools/resync_do.php index e0c422beb4e21ea554ad3adc9be17f20c8ac47f8..62d02e06dfa9b54945568d7aaf667e41f38ce70c 100644 --- a/interface/web/tools/resync_do.php +++ b/interface/web/tools/resync_do.php @@ -67,7 +67,9 @@ class page_action extends tform_actions { $server_name[$server['server_id']] = $server['server_name']; } } else { - $server_name[$server_id] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$server_id)['server_name']; + $temp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$server_id); + $server_name[$server_id] = $temp['server_name']; + unset($temp); } if ( isset($tmp_id) ) $server_id = rtrim($tmp_id,','); @@ -283,7 +285,15 @@ class page_action extends tform_actions { $msg .= '<b>Resynced DNS zone</b><br>'; if(is_array($zone_records) && !empty($zone_records)) { foreach($zone_records as $zone_rec) { - if ($server_id == -1) $records = query_server('dns_rr', $server_id, $server_type, 'WHERE 1', false)[0]; else $records = query_server('dns_rr', $server_id, $server_type, "WHERE active = 'Y'")[0]; + if ($server_id == -1) { + $temp = query_server('dns_rr', $server_id, $server_type, 'WHERE 1', false); + $records = $temp[0]; + unset($temp); + } else { + $temp= query_server('dns_rr', $server_id, $server_type, "WHERE active = 'Y'"); + $records = $temp[0]; + unset($temp); + } $rr_count = 0; if (is_array($records)) { foreach($records as $rec) { diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index a60f7743ad8b71be596a456e0bcba49ea29e03c7..f18394c58cdef45fdf51592742221e2c054cfe5e 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -50,64 +50,6 @@ class cronjob_quota_notify extends cronjob { public function onRunJob() { global $app, $conf; - //######## - // function for sending notification emails - //######## - function send_notification_email($template, $placeholders, $recipients) { - global $conf; - - if(!is_array($recipients) || count($recipients) < 1) return false; - if(!is_array($placeholders)) $placeholders = array(); - - if(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt'); - } elseif(file_exists($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt'); - } else { - $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_en.txt'); - } - - //* get mail headers, subject and body - $mailHeaders = ''; - $mailBody = ''; - $mailSubject = ''; - $inHeader = true; - for($l = 0; $l < count($lines); $l++) { - if($lines[$l] == '') { - $inHeader = false; - continue; - } - if($inHeader == true) { - $parts = explode(':', $lines[$l], 2); - if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]); - unset($parts); - $mailHeaders .= trim($lines[$l]) . "\n"; - } else { - $mailBody .= trim($lines[$l]) . "\n"; - } - } - $mailBody = trim($mailBody); - - //* Replace placeholders - $mailHeaders = strtr($mailHeaders, $placeholders); - $mailSubject = strtr($mailSubject, $placeholders); - $mailBody = strtr($mailBody, $placeholders); - - for($r = 0; $r < count($recipients); $r++) { - mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); - } - - unset($mailSubject); - unset($mailHeaders); - unset($mailBody); - unset($lines); - - return true; - } - - //###################################################################################################### // enforce traffic quota (run only on the "master-server") //###################################################################################################### @@ -170,7 +112,7 @@ class cronjob_quota_notify extends cronjob { } } - send_notification_email('web_traffic_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('web_traffic_notification', $placeholders, $recipients); } } else { @@ -290,7 +232,7 @@ class cronjob_quota_notify extends cronjob { $recipients[] = $client['email']; } } - send_notification_email('web_quota_ok_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('web_quota_ok_notification', $placeholders, $recipients); } } else { @@ -325,7 +267,7 @@ class cronjob_quota_notify extends cronjob { $recipients[] = $client['email']; } } - send_notification_email('web_quota_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('web_quota_notification', $placeholders, $recipients); } } } @@ -419,7 +361,7 @@ class cronjob_quota_notify extends cronjob { } } - send_notification_email('mail_quota_ok_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('mail_quota_ok_notification', $placeholders, $recipients); } } else { @@ -454,7 +396,7 @@ class cronjob_quota_notify extends cronjob { } } - send_notification_email('mail_quota_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('mail_quota_notification', $placeholders, $recipients); } } } @@ -534,7 +476,7 @@ class cronjob_quota_notify extends cronjob { if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '') $recipients[] = $client['email']; - send_notification_email('db_quota_ok_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('db_quota_ok_notification', $placeholders, $recipients); } @@ -566,7 +508,7 @@ class cronjob_quota_notify extends cronjob { if($web_config['overquota_db_notify_client'] == 'y' && $client['email'] != '') $recipients[] = $client['email']; - send_notification_email('db_quota_notification', $placeholders, $recipients); + $this->_tools->send_notification_email('db_quota_notification', $placeholders, $recipients); } diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index 6c2cb3182841a98c5c707e602f3394a4b0c785f9..8740c5512f884f9dbf8dce0afe844fdc4b78606b 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -83,7 +83,9 @@ class cronjob_backup_mail extends cronjob { foreach($records as $rec) { //* Do the mailbox backup if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) { - $sql = "SELECT * FROM mail_domain WHERE domain = '".$app->db->quote(explode("@",$rec['email'])[1])."'"; + $email = $rec['email'][1]; + $sql="SELECT * FROM mail_domain WHERE domain = ?" . $app->db->quote(explode("@",$email))."'"; + unset($email); $domain_rec=$app->db->queryOneRecord($sql); $mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id']; diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index ce1debbb640fce8f53d725c5a75ec2a618055dba..c1ac461cb095ab2bc0fea72618570076651c9870 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -675,6 +675,59 @@ class monitor_tools { $app->dbmaster->query($sql); } + public function send_notification_email($template, $placeholders, $recipients) { + global $conf; + + if(!is_array($recipients) || count($recipients) < 1) return false; + if(!is_array($placeholders)) $placeholders = array(); + + if(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt'); + } elseif(file_exists($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt'); + } else { + $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_en.txt'); + } + + //* get mail headers, subject and body + $mailHeaders = ''; + $mailBody = ''; + $mailSubject = ''; + $inHeader = true; + for($l = 0; $l < count($lines); $l++) { + if($lines[$l] == '') { + $inHeader = false; + continue; + } + if($inHeader == true) { + $parts = explode(':', $lines[$l], 2); + if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]); + unset($parts); + $mailHeaders .= trim($lines[$l]) . "\n"; + } else { + $mailBody .= trim($lines[$l]) . "\n"; + } + } + $mailBody = trim($mailBody); + + //* Replace placeholders + $mailHeaders = strtr($mailHeaders, $placeholders); + $mailSubject = strtr($mailSubject, $placeholders); + $mailBody = strtr($mailBody, $placeholders); + + for($r = 0; $r < count($recipients); $r++) { + mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); + } + + unset($mailSubject); + unset($mailHeaders); + unset($mailBody); + unset($lines); + + return true; + } }