Florian Schaal
2014-10-17 a204303e5099dcb88e5e4760a09e7de9a96c4ea3
moved "function send_notification_email" from 300-quota_notify.inc.php to monitor_tools.inc.php
2 files modified
125 ■■■■ changed files
server/lib/classes/cron.d/300-quota_notify.inc.php 72 ●●●●● patch | view | raw | blame | history
server/lib/classes/monitor_tools.inc.php 53 ●●●●● patch | view | raw | blame | history
server/lib/classes/cron.d/300-quota_notify.inc.php
@@ -50,64 +50,6 @@
    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 @@
                                }
                            }
                            send_notification_email('web_traffic_notification', $placeholders, $recipients);
                            $this->_tools->send_notification_email('web_traffic_notification', $placeholders, $recipients);
                        }
                    } else {
@@ -290,7 +232,7 @@
                                    $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 @@
                                    $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 @@
                                }
                            }
                            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 @@
                                }
                            }
                            send_notification_email('mail_quota_notification', $placeholders, $recipients);
                            $this->_tools->send_notification_email('mail_quota_notification', $placeholders, $recipients);
                        }
                    }
                }
@@ -534,7 +476,7 @@
                                        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 @@
                                    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);
                                }
server/lib/classes/monitor_tools.inc.php
@@ -656,6 +656,59 @@
        $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;
    }
}