From b701d8c0b04d88d5ddb26ed292d2e9897f8fec6c Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Sun, 6 Nov 2022 19:34:26 +0000 Subject: pkg/email: add support for Sender extraction --- pkg/email/parser.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'pkg/email/parser.go') diff --git a/pkg/email/parser.go b/pkg/email/parser.go index d7bf40a0f..2975d2de7 100644 --- a/pkg/email/parser.go +++ b/pkg/email/parser.go @@ -24,6 +24,7 @@ type Email struct { Subject string From string Cc []string + Sender string Body string // text/plain part Patch string // attached patch, if any Command Command // command to bot @@ -97,6 +98,17 @@ func Parse(r io.Reader, ownEmails []string) (*Email, error) { } } ccList = MergeEmailLists(ccList) + + sender := "" + senders, err := msg.Header.AddressList("Sender") + if err != nil { + if err != mail.ErrHeaderNotPresent { + return nil, err + } + } else if len(senders) > 0 { + sender = senders[0].Address + } + body, attachments, err := parseBody(msg.Body, msg.Header) if err != nil { return nil, err @@ -128,6 +140,7 @@ func Parse(r io.Reader, ownEmails []string) (*Email, error) { Subject: subject, From: from[0].String(), Cc: ccList, + Sender: sender, Body: bodyStr, Patch: patch, Command: cmd, -- cgit mrf-deployment