Skip to content

Commit a2c37d2

Browse files
authored
feat: Add support for more bypass settings (#425)
Add support for bypass_spam_management, bypass_bounce_management and bypass_unsubscribe_management filters.
1 parent c575416 commit a2c37d2

2 files changed

Lines changed: 47 additions & 5 deletions

File tree

helpers/mail/mail_v3.go

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,14 @@ type Asm struct {
7272

7373
// MailSettings defines mail and spamCheck settings
7474
type MailSettings struct {
75-
BCC *BccSetting `json:"bcc,omitempty"`
76-
BypassListManagement *Setting `json:"bypass_list_management,omitempty"`
77-
Footer *FooterSetting `json:"footer,omitempty"`
78-
SandboxMode *Setting `json:"sandbox_mode,omitempty"`
79-
SpamCheckSetting *SpamCheckSetting `json:"spam_check,omitempty"`
75+
BCC *BccSetting `json:"bcc,omitempty"`
76+
BypassListManagement *Setting `json:"bypass_list_management,omitempty"`
77+
BypassSpamManagement *Setting `json:"bypass_spam_management,omitempty"`
78+
BypassBounceManagement *Setting `json:"bypass_bounce_management,omitempty"`
79+
BypassUnsubscribeManagement *Setting `json:"bypass_unsubscribe_management,omitempty"`
80+
Footer *FooterSetting `json:"footer,omitempty"`
81+
SandboxMode *Setting `json:"sandbox_mode,omitempty"`
82+
SpamCheckSetting *SpamCheckSetting `json:"spam_check,omitempty"`
8083
}
8184

8285
// TrackingSettings holds tracking settings and mail settings
@@ -423,6 +426,24 @@ func (m *MailSettings) SetBypassListManagement(bypassListManagement *Setting) *M
423426
return m
424427
}
425428

429+
// SetBypassSpamManagement ...
430+
func (m *MailSettings) SetBypassSpamManagement(bypassSpamManagement *Setting) *MailSettings {
431+
m.BypassSpamManagement = bypassSpamManagement
432+
return m
433+
}
434+
435+
// SetBypassBounceManagement ...
436+
func (m *MailSettings) SetBypassBounceManagement(bypassBounceManagement *Setting) *MailSettings {
437+
m.BypassBounceManagement = bypassBounceManagement
438+
return m
439+
}
440+
441+
// SetBypassUnsubscribeManagement ...
442+
func (m *MailSettings) SetBypassUnsubscribeManagement(bypassUnsubscribeManagement *Setting) *MailSettings {
443+
m.BypassUnsubscribeManagement = bypassUnsubscribeManagement
444+
return m
445+
}
446+
426447
// SetFooter ...
427448
func (m *MailSettings) SetFooter(footerSetting *FooterSetting) *MailSettings {
428449
m.Footer = footerSetting

helpers/mail/mail_v3_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,27 @@ func TestV3MailSettingsSetBypassListManagement(t *testing.T) {
455455
assert.True(t, *m.BypassListManagement.Enable, "BypassListManagement should be enabled")
456456
}
457457

458+
func TestV3MailSettingsSetBypassSpamManagement(t *testing.T) {
459+
m := NewMailSettings().SetBypassSpamManagement(NewSetting(true))
460+
461+
assert.NotNil(t, m.BypassSpamManagement, "BypassSpamManagement should not be nil")
462+
assert.True(t, *m.BypassSpamManagement.Enable, "BypassSpamManagement should be enabled")
463+
}
464+
465+
func TestV3MailSettingsSetBypassBounceManagement(t *testing.T) {
466+
m := NewMailSettings().SetBypassBounceManagement(NewSetting(true))
467+
468+
assert.NotNil(t, m.BypassBounceManagement, "BypassBounceManagement should not be nil")
469+
assert.True(t, *m.BypassBounceManagement.Enable, "BypassBounceManagement should be enabled")
470+
}
471+
472+
func TestV3MailSettingsSetBypassUnsubscribeManagement(t *testing.T) {
473+
m := NewMailSettings().SetBypassUnsubscribeManagement(NewSetting(true))
474+
475+
assert.NotNil(t, m.BypassUnsubscribeManagement, "BypassUnsubscribeManagement should not be nil")
476+
assert.True(t, *m.BypassUnsubscribeManagement.Enable, "BypassUnsubscribeManagement should be enabled")
477+
}
478+
458479
func TestV3MailSettingsSetSandboxMode(t *testing.T) {
459480
m := NewMailSettings().SetSandboxMode(NewSetting(true))
460481

0 commit comments

Comments
 (0)