Skip to content

Commit

Permalink
Merge pull request #173 from wneessen/ms-autoresponse-suppres
Browse files Browse the repository at this point in the history
Add "X-Auto-Response-Suppress" header and update SetBulk method
  • Loading branch information
wneessen authored Feb 8, 2024
2 parents 64a0739 + 7a54924 commit 94f53fe
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 6 deletions.
4 changes: 2 additions & 2 deletions .golangci.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
"errname", "errorlint", "gofmt", "gofumpt"]
3 changes: 3 additions & 0 deletions header.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down
6 changes: 4 additions & 2 deletions msg.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 10 additions & 1 deletion msg_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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])
}
}

Expand Down
1 change: 0 additions & 1 deletion smtp/smtp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,6 @@ Subject: SendMail test
SendMail is working for me.
`, "\n", "\r\n", -1)))

if err != nil {
t.Errorf("%v", err)
}
Expand Down

0 comments on commit 94f53fe

Please sign in to comment.