From fc4458bfbbc6b7c18942d87d18a0c3b148112117 Mon Sep 17 00:00:00 2001 From: christopher-besch Date: Thu, 6 Mar 2025 12:49:24 +0000 Subject: [PATCH] interpret Precedence: auto_reply as an auto reply (#7137) Some email clients like to be special and only set the "Precedence" header to "auto_reply" when sending automatic replies. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7137 Reviewed-by: Gusted Reviewed-by: Otto Co-authored-by: christopher-besch Co-committed-by: christopher-besch --- services/mailer/incoming/incoming.go | 4 ++++ services/mailer/incoming/incoming_test.go | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/services/mailer/incoming/incoming.go b/services/mailer/incoming/incoming.go index 249dac66cd..092f738cd9 100644 --- a/services/mailer/incoming/incoming.go +++ b/services/mailer/incoming/incoming.go @@ -297,6 +297,10 @@ func isAutomaticReply(env *enmime.Envelope) bool { if autoReply == "yes" { return true } + precedence := env.GetHeader("Precedence") + if precedence == "auto_reply" { + return true + } autoRespond := env.GetHeader("X-Autorespond") return autoRespond != "" } diff --git a/services/mailer/incoming/incoming_test.go b/services/mailer/incoming/incoming_test.go index 6101bc7e32..fe11c9e5c6 100644 --- a/services/mailer/incoming/incoming_test.go +++ b/services/mailer/incoming/incoming_test.go @@ -65,6 +65,12 @@ func TestIsAutomaticReply(t *testing.T) { }, Expected: true, }, + { + Headers: map[string]string{ + "Precedence": "auto_reply", + }, + Expected: true, + }, } for _, c := range cases {