From f86442359e27910d52724bfdf6a605d78a8fe064 Mon Sep 17 00:00:00 2001
From: mizho <mizuho128@gmail.com>
Date: Wed, 16 Oct 2024 01:59:59 +0900
Subject: [PATCH] Subject decoded matching

---
 store/account.go | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/store/account.go b/store/account.go
index 59349fd..4fba597 100644
--- a/store/account.go
+++ b/store/account.go
@@ -1855,6 +1855,7 @@ ruleset:
 
 	header:
 		for _, t := range rs.HeadersRegexpCompiled {
+			isSubjectMatch := t[0].MatchString("subject")
 			for k, vl := range header {
 				k = strings.ToLower(k)
 				if t[0].MatchString("body") { // message body match
@@ -1872,6 +1873,13 @@ ruleset:
 					continue
 				}
 				for _, v := range vl {
+					if isSubjectMatch {
+						// todo: memorize decoded text
+						v, err = decodeRFC2047(v)
+						if err != nil {
+							log.Errorx("Failed to decode subject: %v", err, slog.String("v", v))
+						}
+					}
 					v = strings.ToLower(strings.TrimSpace(v))
 					if t[1].MatchString(v) {
 						continue header