From a864be059cfd72004640bb5fb8b89bf0cc07241c Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Thu, 8 Feb 2024 16:45:06 +0100 Subject: [PATCH 1/2] Add "X-Auto-Response-Suppress" header and update SetBulk method A new "X-Auto-Response-Suppress" header has been added. The SetBulk method has been updated to include this new header, as it is recommended for automated emails. This functionality is tested in the msg_test.go file. --- header.go | 3 +++ msg.go | 6 ++++-- msg_test.go | 11 ++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/header.go b/header.go index 4fca337..4e5e378 100644 --- a/header.go +++ b/header.go @@ -82,6 +82,9 @@ const ( // HeaderUserAgent is the "User-Agent" header field HeaderUserAgent Header = "User-Agent" + // HeaderXAutoResponseSuppress is the "X-Auto-Response-Suppress" header field + HeaderXAutoResponseSuppress Header = "X-Auto-Response-Suppress" + // HeaderXMailer is the "X-Mailer" header field HeaderXMailer Header = "X-Mailer" diff --git a/msg.go b/msg.go index 7ca73ce..0efd043 100644 --- a/msg.go +++ b/msg.go @@ -470,11 +470,13 @@ func (m *Msg) SetMessageIDWithValue(v string) { m.SetGenHeader(HeaderMessageID, fmt.Sprintf("<%s>", v)) } -// SetBulk sets the "Precedence: bulk" genHeader which is recommended for -// automated mails like OOO replies +// SetBulk sets the "Precedence: bulk" and "X-Auto-Response-Suppress: All" genHeaders which are +// recommended for automated mails like OOO replies // See: https://www.rfc-editor.org/rfc/rfc2076#section-3.9 +// See also: https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcmail/ced68690-498a-4567-9d14-5c01f974d8b1#Appendix_A_Target_51 func (m *Msg) SetBulk() { m.SetGenHeader(HeaderPrecedence, "bulk") + m.SetGenHeader(HeaderXAutoResponseSuppress, "All") } // SetDate sets the Date genHeader field to the current time in a valid format diff --git a/msg_test.go b/msg_test.go index 6224283..e8aa66d 100644 --- a/msg_test.go +++ b/msg_test.go @@ -701,7 +701,16 @@ func TestMsg_SetBulk(t *testing.T) { return } if m.genHeader[HeaderPrecedence][0] != "bulk" { - t.Errorf("SetBulk() failed. Expected %q, got: %q", "bulk", m.genHeader[HeaderPrecedence][0]) + t.Errorf("SetBulk() failed. Expected Precedence header: %q, got: %q", "bulk", + m.genHeader[HeaderPrecedence][0]) + } + if m.genHeader[HeaderXAutoResponseSuppress] == nil { + t.Errorf("SetBulk() failed. X-Auto-Response-Suppress header is nil") + return + } + if m.genHeader[HeaderXAutoResponseSuppress][0] != "All" { + t.Errorf("SetBulk() failed. Expected X-Auto-Response-Suppress header: %q, got: %q", "All", + m.genHeader[HeaderXAutoResponseSuppress][0]) } } From 7a549242aec27796449483386f62eed334dcf4bc Mon Sep 17 00:00:00 2001 From: Winni Neessen Date: Thu, 8 Feb 2024 16:51:25 +0100 Subject: [PATCH 2/2] Update Go version and clean up SMTP test suite The Go version has been updated to 1.22 in the .golangci.toml file for compatibility reasons. Additionally, unnecessary white space has been removed from the smtp/smtp_test.go file to maximize code efficiency and readability. --- .golangci.toml | 4 ++-- smtp/smtp_test.go | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.golangci.toml b/.golangci.toml index ef4d48a..2501c6a 100644 --- a/.golangci.toml +++ b/.golangci.toml @@ -3,9 +3,9 @@ ## SPDX-License-Identifier: MIT [run] -go = "1.20" +go = "1.22" tests = true [linters] enable = ["stylecheck", "whitespace", "containedctx", "contextcheck", "decorder", - "errname", "errorlint", "gofmt", "gofumpt"] \ No newline at end of file + "errname", "errorlint", "gofmt", "gofumpt"] diff --git a/smtp/smtp_test.go b/smtp/smtp_test.go index 73f4fa5..c829e21 100644 --- a/smtp/smtp_test.go +++ b/smtp/smtp_test.go @@ -1088,7 +1088,6 @@ Subject: SendMail test SendMail is working for me. `, "\n", "\r\n", -1))) - if err != nil { t.Errorf("%v", err) }