From 2e99d0fe1b131dab3736956db1c2719d12c24588 Mon Sep 17 00:00:00 2001 From: Livio Spring Date: Fri, 29 Sep 2023 10:53:45 +0200 Subject: [PATCH] fix(email): UTF-8 "Q" encode subject header (#6637) fix(email): UTF-8 "Q" encode subject header --- internal/notification/messages/email.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/notification/messages/email.go b/internal/notification/messages/email.go index 38ceaaa6fa..0a71b691df 100644 --- a/internal/notification/messages/email.go +++ b/internal/notification/messages/email.go @@ -54,7 +54,7 @@ func (msg *Email) GetContent() (string, error) { if !isHTML(msg.Content) { mime = "MIME-version: 1.0;" + lineBreak + "Content-Type: text/plain; charset=\"UTF-8\";" + lineBreak + lineBreak } - subject := "Subject: " + msg.Subject + lineBreak + subject := "Subject: " + qEncodeSubject(msg.Subject) + lineBreak message += subject + mime + lineBreak + msg.Content return message, nil @@ -67,3 +67,8 @@ func (msg *Email) GetTriggeringEvent() eventstore.Event { func isHTML(input string) bool { return isHTMLRgx.MatchString(input) } + +// returns a RFC1342 "Q" encoded string to allow non-ascii characters +func qEncodeSubject(subject string) string { + return "=?utf-8?q?" + subject + "?=" +}