From 478726a48cbb1e07746dead3d8699f094797eb6e Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Tue, 25 Aug 2020 16:28:18 -0600
Subject: [PATCH] sieve filter: allow 'Header' source for domain/localpart
 address tests

---
 .../plugins/mail_user_filter_plugin.inc.php   | 20 +++++++++----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/interface/lib/plugins/mail_user_filter_plugin.inc.php b/interface/lib/plugins/mail_user_filter_plugin.inc.php
index 4c6d8235c7..45c32179f6 100644
--- a/interface/lib/plugins/mail_user_filter_plugin.inc.php
+++ b/interface/lib/plugins/mail_user_filter_plugin.inc.php
@@ -137,8 +137,14 @@ class mail_user_filter_plugin {
 			$content = '';
 			$content .= '### BEGIN FILTER_ID:'.$page_form->id."\n";
 
-			//$content .= 'require ["fileinto", "regex", "vacation"];'."\n";
-			
+			if($page_form->dataRecord["source"] == 'Header') {
+				$parts = explode(':',trim($page_form->dataRecord["searchterm"]));
+				$page_form->dataRecord["source"] = trim($parts[0]);
+				unset($parts[0]);
+				$page_form->dataRecord["searchterm"] = trim(implode(':',$parts));
+				unset($parts);
+			}
+
 			if($page_form->dataRecord["op"] == 'domain') {
 				$content .= 'if address :domain :is "'.strtolower($page_form->dataRecord["source"]).'" "'.$page_form->dataRecord["searchterm"].'" {'."\n";
 			} elseif ($page_form->dataRecord["op"] == 'localpart') {
@@ -152,15 +158,7 @@ class mail_user_filter_plugin {
 				$content .= 'if size :over '.intval($page_form->dataRecord["searchterm"]).$unit.' {'."\n";
 			} else {
 			
-				if($page_form->dataRecord["source"] == 'Header') {
-					$parts = explode(':',trim($page_form->dataRecord["searchterm"]));
-					$page_form->dataRecord["source"] = trim($parts[0]);
-					unset($parts[0]);
-					$page_form->dataRecord["searchterm"] = trim(implode(':',$parts));
-					unset($parts);
-				}
-
-				$content .= 'if header :regex    ["'.strtolower($page_form->dataRecord["source"]).'"] ["';
+				$content .= 'if header :regex    "'.strtolower($page_form->dataRecord["source"]).'" ["';
 
 				# special chars in sieve regex must be escaped with double-backslash
 				if($page_form->dataRecord["op"] == 'regex') {
-- 
GitLab