From d8faa4e7e3fb74e554f6c9339f6fe4e2883c3bf1 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 18 Sep 2015 19:43:03 +0200
Subject: [PATCH] Fix by dirkd: Since file() doesn't remove "\n" from the lines
 read the condition $lines[$l] == '' never evaluated to true. So $mailHeaders
 would always contain every line from the template while $mailBody contained
 none of them.

Together with the bugfix of PHP#68776 [1] disallowing multiple "\n"'s & preceding "\n" in mail()'s $additionalHeaders arg this caused mails not being sent because $mailHeaders would include at least one "\n\n" which was meant to separate the mail headers from the body.

[1] https://bugs.php.net/bug.php?id=68776
---
 server/lib/classes/monitor_tools.inc.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index ce3d4bbc74..9b706ce76f 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -702,7 +702,7 @@ class monitor_tools {
 		$mailSubject = '';
 		$inHeader = true;
 		for($l = 0; $l < count($lines); $l++) {
-			if($lines[$l] == '') {
+			if(trim($lines[$l]) == '') {
 				$inHeader = false;
 				continue;
 			}
-- 
GitLab