From 65d91d24f06d8c731fdb0afa4f492f9d238c2d8a Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Fri, 05 Jul 2013 07:03:24 -0400
Subject: [PATCH] - changed the way mails for traffic and quota notification are generated - added german translation

---
 server/conf/mail/web_quota_notification_de.txt   |   14 ++
 server/conf/mail/mail_quota_notification_de.txt  |   14 ++
 server/conf/mail/web_traffic_notification_en.txt |    7 +
 server/conf/mail/web_quota_notification_en.txt   |    7 +
 server/conf/mail/web_traffic_notification_de.txt |    8 +
 server/cron_daily.php                            |  229 +++++++++++++++++++++++++++------------------
 server/conf/mail/mail_quota_notification_en.txt  |    7 +
 7 files changed, 189 insertions(+), 97 deletions(-)

diff --git a/server/conf/mail/mail_quota_notification_de.txt b/server/conf/mail/mail_quota_notification_de.txt
new file mode 100644
index 0000000..f8f4d64
--- /dev/null
+++ b/server/conf/mail/mail_quota_notification_de.txt
@@ -0,0 +1,14 @@
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: E-Mail Kontobelegungshinweis
+
+Ihr E-Mail Konto {email} hat den verfügbaren Speicherplatz (nahezu) ausgeschöpft.
+
+E-Mail Konto: 			{email}
+Name:					{name}
+Belegter Speicher:		{used}
+Verfügbarer Speicher:	{quota}
+Belegt:					{ratio}
\ No newline at end of file
diff --git a/server/conf/mail/mail_quota_notification_en.txt b/server/conf/mail/mail_quota_notification_en.txt
index 28c8f7e..86716aa 100644
--- a/server/conf/mail/mail_quota_notification_en.txt
+++ b/server/conf/mail/mail_quota_notification_en.txt
@@ -1,4 +1,9 @@
-Subject:Mailbox quota notification
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: Mailbox quota notification
 
 The mailbox {email} is near or over quota.
 
diff --git a/server/conf/mail/web_quota_notification_de.txt b/server/conf/mail/web_quota_notification_de.txt
new file mode 100644
index 0000000..11d4af2
--- /dev/null
+++ b/server/conf/mail/web_quota_notification_de.txt
@@ -0,0 +1,14 @@
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: Webseiten-Speicherhinweis
+
+Ihre Webseite {domain} hat den verfügbaren Speicherplatz (nahezu) ausgeschöpft.
+
+Webseite:						 		{domain}
+Belegter Speicherplatz:					{used}
+Verfügbarer Speicherplatz:				{soft}
+Verfügbarer Speicherplatz (hard quota):	{hard}
+Belegter Speicher in %:					{ratio}
\ No newline at end of file
diff --git a/server/conf/mail/web_quota_notification_en.txt b/server/conf/mail/web_quota_notification_en.txt
index 8d79215..9da1e96 100644
--- a/server/conf/mail/web_quota_notification_en.txt
+++ b/server/conf/mail/web_quota_notification_en.txt
@@ -1,4 +1,9 @@
-Subject:Website quota notification
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: Website quota notification
 
 The website {domain} is near or over quota.
 
diff --git a/server/conf/mail/web_traffic_notification_de.txt b/server/conf/mail/web_traffic_notification_de.txt
new file mode 100644
index 0000000..b249121
--- /dev/null
+++ b/server/conf/mail/web_traffic_notification_de.txt
@@ -0,0 +1,8 @@
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: Traffic-Warnung
+
+Ihre Webseite {domain} hat den verfügbaren Traffic ausgeschöpft und wurde vorrübergehend deaktiviert.
\ No newline at end of file
diff --git a/server/conf/mail/web_traffic_notification_en.txt b/server/conf/mail/web_traffic_notification_en.txt
index 9b91792..bae39cb 100644
--- a/server/conf/mail/web_traffic_notification_en.txt
+++ b/server/conf/mail/web_traffic_notification_en.txt
@@ -1,3 +1,8 @@
-Subject:Website traffic notification
+MIME-Version: 1.0
+Content-type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+From: {admin_mail}
+Reply-To: {admin_mail}
+Subject: Website traffic notification
 
 The website {domain} is over traffic and has been disabled.
\ No newline at end of file
diff --git a/server/cron_daily.php b/server/cron_daily.php
index bd8e63d..837e6a1 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -695,29 +695,38 @@
 						$lines = file($conf['rootpath'].'/conf/mail/web_traffic_notification_en.txt');
 					}
 					
-					//* Get subject
-					$parts = explode(':',trim($lines[0]));
-					unset($parts[0]);
-					$traffic_mail_subject  = implode(':',$parts);
-					unset($lines[0]);
-		
-					//* Get message
-					$traffic_mail_message = trim(implode($lines));
-					unset($tmp);
-					
+                    //* 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(':', $line[$l], 2);
+                            if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]);
+                            unset($parts);
+                            $mailHeaders .= $lines[$l] . "\n";
+                        } else {
+                            $mailBody .= $lines[$l] . "\n";
+                        }
+                    }
+                    $mailBody = trim($mailBody);
+                    
+                    $placeholders = array('{domain}' => $rec['domain'],
+                                          '{admin_mail}' => $global_config['admin_mail']);
+                    
 					//* Replace placeholders
-					$traffic_mail_message = str_replace('{domain}',$rec['domain'],$traffic_mail_message);
-						
-					$mailHeaders      = "MIME-Version: 1.0" . "\n";
-					$mailHeaders     .= "Content-type: text/plain; charset=utf-8" . "\n";
-					$mailHeaders     .= "Content-Transfer-Encoding: 8bit" . "\n";
-					$mailHeaders     .= "From: ". $global_config['admin_mail'] . "\n";
-					$mailHeaders     .= "Reply-To: ". $global_config['admin_mail'] . "\n";
-					$mailSubject      = "=?utf-8?B?".base64_encode($traffic_mail_subject)."?=";
+					$mailHeaders = strtr($mailHeaders, $placeholders);
+                    $mailSubject = strtr($mailSubject, $placeholders);
+                    $mailBody = strtr($mailBody, $placeholders);
 					
 					//* send email to admin
 					if($global_config['admin_mail'] != '' && $web_config['overtraffic_notify_admin'] == 'y') {
-						mail($global_config['admin_mail'], $mailSubject, $traffic_mail_message, $mailHeaders);
+						mail($global_config['admin_mail'], $mailSubject, $mailBody, $mailHeaders);
 					}
 					
 					//* Send email to client
@@ -725,10 +734,13 @@
 						$client_group_id = $rec["sys_groupid"];
 						$client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
 						if($client['email'] != '') {
-							mail($client['email'], $mailSubject, $traffic_mail_message, $mailHeaders);
+							mail($client['email'], $mailSubject, $mailBody, $mailHeaders);
 						}
 					}
-					
+                    unset($mailSubject);
+                    unset($mailHeaders);
+                    unset($mailBody);
+					unset($lines);
 				}
 				
 				
@@ -831,43 +843,58 @@
 					$lines = file($conf['rootpath'].'/conf/mail/web_quota_notification_en.txt');
 				}
 					
-				//* Get subject
-				$parts = explode(':',trim($lines[0]));
-				unset($parts[0]);
-				$quota_mail_subject  = implode(':',$parts);
-				unset($lines[0]);
-		
-				//* Get message
-				$quota_mail_message = trim(implode($lines));
-				unset($tmp);
-					
-				//* Replace placeholders
-				$quota_mail_message = str_replace('{domain}',$rec['domain'],$quota_mail_message);
-				$quota_mail_message = str_replace('{used}',$rec['used'],$quota_mail_message);
-				$quota_mail_message = str_replace('{soft}',$rec['soft'],$quota_mail_message);
-				$quota_mail_message = str_replace('{hard}',$rec['hard'],$quota_mail_message);
-				$quota_mail_message = str_replace('{ratio}',$rec['ratio'],$quota_mail_message);
-						
-				$mailHeaders      = "MIME-Version: 1.0" . "\n";
-				$mailHeaders     .= "Content-type: text/plain; charset=utf-8" . "\n";
-				$mailHeaders     .= "Content-Transfer-Encoding: 8bit" . "\n";
-				$mailHeaders     .= "From: ". $global_config['admin_mail'] . "\n";
-				$mailHeaders     .= "Reply-To: ". $global_config['admin_mail'] . "\n";
-				$mailSubject      = "=?utf-8?B?".base64_encode($quota_mail_subject)."?=";
 				
-				//* send email to admin
-				if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') {
-					mail($global_config['admin_mail'], $mailSubject, $quota_mail_message, $mailHeaders);
-				}
-					
-				//* Send email to client
-				if($web_config['overquota_notify_client'] == 'y') {
-					$client_group_id = $rec["sys_groupid"];
-					$client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
-					if($client['email'] != '') {
-						mail($client['email'], $mailSubject, $quota_mail_message, $mailHeaders);
-					}
-				}	
+                //* 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(':', $line[$l], 2);
+                        if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]);
+                        unset($parts);
+                        $mailHeaders .= $lines[$l] . "\n";
+                    } else {
+                        $mailBody .= $lines[$l] . "\n";
+                    }
+                }
+                $mailBody = trim($mailBody);
+                
+                $placeholders = array('{domain}' => $rec['domain'],
+                                      '{admin_mail}' => $global_config['admin_mail'],
+                                      '{used}' => $rec['used'],
+                                      '{soft}' => $rec['soft'],
+                                      '{hard}' => $rec['hard'],
+                                      '{ratio}' => $rec['ratio']);
+                
+                //* Replace placeholders
+                $mailHeaders = strtr($mailHeaders, $placeholders);
+                $mailSubject = strtr($mailSubject, $placeholders);
+                $mailBody = strtr($mailBody, $placeholders);
+                
+                //* send email to admin
+                if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') {
+                    mail($global_config['admin_mail'], $mailSubject, $mailBody, $mailHeaders);
+                }
+                
+                //* Send email to client
+                if($web_config['overquota_notify_client'] == 'y') {
+                    $client_group_id = $rec["sys_groupid"];
+                    $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+                    if($client['email'] != '') {
+                        mail($client['email'], $mailSubject, $mailBody, $mailHeaders);
+                    }
+                }
+                
+                unset($mailSubject);
+                unset($mailHeaders);
+                unset($mailBody);
+                unset($lines);
 			}	
 		}
 	}
@@ -938,43 +965,57 @@
 					$lines = file($conf['rootpath'].'/conf/mail/mail_quota_notification_en.txt');
 				}
 					
-				//* Get subject
-				$parts = explode(':',trim($lines[0]));
-				unset($parts[0]);
-				$mailquota_mail_subject  = implode(':',$parts);
-				unset($lines[0]);
-		
-				//* Get message
-				$mailquota_mail_message = trim(implode($lines));
-				unset($tmp);
-					
-				//* Replace placeholders
-				$mailquota_mail_message = str_replace('{email}',$rec['email'],$mailquota_mail_message);
-				$mailquota_mail_message = str_replace('{name}',$rec['name'],$mailquota_mail_message);
-				$mailquota_mail_message = str_replace('{used}',$rec['used'],$mailquota_mail_message);
-				$mailquota_mail_message = str_replace('{quota}',$rec['quota'],$mailquota_mail_message);
-				$mailquota_mail_message = str_replace('{ratio}',$rec['ratio'],$mailquota_mail_message);
-						
-				$mailHeaders      = "MIME-Version: 1.0" . "\n";
-				$mailHeaders     .= "Content-type: text/plain; charset=utf-8" . "\n";
-				$mailHeaders     .= "Content-Transfer-Encoding: 8bit" . "\n";
-				$mailHeaders     .= "From: ". $global_config['admin_mail'] . "\n";
-				$mailHeaders     .= "Reply-To: ". $global_config['admin_mail'] . "\n";
-				$mailSubject      = "=?utf-8?B?".base64_encode($mailquota_mail_subject)."?=";
-				
-				//* send email to admin
-				if($global_config['admin_mail'] != '' && $mail_config['overquota_notify_admin'] == 'y') {
-					mail($global_config['admin_mail'], $mailSubject, $mailquota_mail_message, $mailHeaders);
-				}
-					
-				//* Send email to client
-				if($mail_config['overquota_notify_client'] == 'y') {
-					$client_group_id = $rec["sys_groupid"];
-					$client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
-					if($client['email'] != '') {
-						mail($client['email'], $mailSubject, $mailquota_mail_message, $mailHeaders);
-					}
-				}	
+                //* 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(':', $line[$l], 2);
+                        if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]);
+                        unset($parts);
+                        $mailHeaders .= $lines[$l] . "\n";
+                    } else {
+                        $mailBody .= $lines[$l] . "\n";
+                    }
+                }
+                $mailBody = trim($mailBody);
+                
+                $placeholders = array('{email}' => $rec['email'],
+                                      '{admin_mail}' => $global_config['admin_mail'],
+                                      '{used}' => $rec['used'],
+                                      '{name}' => $rec['name'],
+                                      '{quota}' => $rec['quota'],
+                                      '{ratio}' => $rec['ratio']);
+                
+                //* Replace placeholders
+                $mailHeaders = strtr($mailHeaders, $placeholders);
+                $mailSubject = strtr($mailSubject, $placeholders);
+                $mailBody = strtr($mailBody, $placeholders);
+                
+                //* send email to admin
+                if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') {
+                    mail($global_config['admin_mail'], $mailSubject, $mailBody, $mailHeaders);
+                }
+                
+                //* Send email to client
+                if($web_config['overquota_notify_client'] == 'y') {
+                    $client_group_id = $rec["sys_groupid"];
+                    $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+                    if($client['email'] != '') {
+                        mail($client['email'], $mailSubject, $mailBody, $mailHeaders);
+                    }
+                }
+                
+                unset($mailSubject);
+                unset($mailHeaders);
+                unset($mailBody);
+                unset($lines);
 			}	
 		}
 	}

--
Gitblit v1.9.1