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.
This commit is contained in:
Winni Neessen 2024-02-08 16:45:06 +01:00
parent 64a07399c4
commit a864be059c
Signed by: wneessen
GPG key ID: 385AC9889632126E
3 changed files with 17 additions and 3 deletions

View file

@ -82,6 +82,9 @@ const (
// HeaderUserAgent is the "User-Agent" header field // HeaderUserAgent is the "User-Agent" header field
HeaderUserAgent Header = "User-Agent" 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 is the "X-Mailer" header field
HeaderXMailer Header = "X-Mailer" HeaderXMailer Header = "X-Mailer"

6
msg.go
View file

@ -470,11 +470,13 @@ func (m *Msg) SetMessageIDWithValue(v string) {
m.SetGenHeader(HeaderMessageID, fmt.Sprintf("<%s>", v)) m.SetGenHeader(HeaderMessageID, fmt.Sprintf("<%s>", v))
} }
// SetBulk sets the "Precedence: bulk" genHeader which is recommended for // SetBulk sets the "Precedence: bulk" and "X-Auto-Response-Suppress: All" genHeaders which are
// automated mails like OOO replies // recommended for automated mails like OOO replies
// See: https://www.rfc-editor.org/rfc/rfc2076#section-3.9 // 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() { func (m *Msg) SetBulk() {
m.SetGenHeader(HeaderPrecedence, "bulk") m.SetGenHeader(HeaderPrecedence, "bulk")
m.SetGenHeader(HeaderXAutoResponseSuppress, "All")
} }
// SetDate sets the Date genHeader field to the current time in a valid format // SetDate sets the Date genHeader field to the current time in a valid format

View file

@ -701,7 +701,16 @@ func TestMsg_SetBulk(t *testing.T) {
return return
} }
if m.genHeader[HeaderPrecedence][0] != "bulk" { 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])
} }
} }