From 4da7d68235aae427117e24448e8955b275003cc0 Mon Sep 17 00:00:00 2001 From: Alexander Akhmetov Date: Thu, 26 Mar 2026 12:24:09 +0100 Subject: [PATCH] Set To header to undisclosed-recipients when using BCC When UseBCC is enabled, the To header was left empty, which looks odd to recipients and may cause some mail servers to flag the message as spam. Set it to "undisclosed-recipients:;" per RFC 2822. --- receivers/email_sender.go | 1 + receivers/email_sender_test.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/receivers/email_sender.go b/receivers/email_sender.go index 942510ee5..c1dc05128 100644 --- a/receivers/email_sender.go +++ b/receivers/email_sender.go @@ -236,6 +236,7 @@ func (s *defaultEmailSender) buildEmail(msg *Message) *gomail.Message { } m.SetHeader("From", msg.From) if s.cfg.UseBCC && !msg.SingleEmail { + m.SetHeader("To", "undisclosed-recipients:;") m.SetHeader("Bcc", msg.To...) } else { m.SetHeader("To", msg.To...) diff --git a/receivers/email_sender_test.go b/receivers/email_sender_test.go index 540c890a9..f1de60650 100644 --- a/receivers/email_sender_test.go +++ b/receivers/email_sender_test.go @@ -152,7 +152,7 @@ func TestBuildEmail(t *testing.T) { checkBodyContent: true, }, { - name: "UseBCC=true, SingleEmail=false - recipients in Bcc", + name: "UseBCC=true, SingleEmail=false - recipients in Bcc, To set to undisclosed-recipients", cfg: EmailSenderConfig{ UseBCC: true, ContentTypes: []string{"text/plain"}, @@ -164,7 +164,7 @@ func TestBuildEmail(t *testing.T) { SingleEmail: false, Body: map[string]string{"text/plain": "This is a test message"}, }, - expectedTo: nil, + expectedTo: []string{"undisclosed-recipients:;"}, expectedBcc: []string{"to1@to.com", "to2@to.com"}, }, {