diff --git a/bot/email.go b/bot/email.go index fcc732e..0b5cfdb 100644 --- a/bot/email.go +++ b/bot/email.go @@ -275,7 +275,7 @@ func (e *parentEmail) fixtofrom(newSenderMailbox string, domains []string) { // Recipients returns list of recipients (to, cc) func (e parentEmail) Recipients() []string { - return append(email.AddressList(e.CC), e.To) + return append(email.AddressList(e.CC), strings.Split(email.Address(e.To), ",")...) } func (b *Bot) getParentEvent(evt *event.Event) (id.EventID, *event.Event) { diff --git a/email/email.go b/email/email.go index fd793aa..f55329a 100644 --- a/email/email.go +++ b/email/email.go @@ -41,7 +41,7 @@ func New(messageID, inReplyTo, references, subject, from, to, rcptto, cc, text, From: Address(from), To: Address(to), CC: AddressList(cc), - RcptTo: rcptto, + RcptTo: Address(rcptto), Subject: subject, Text: text, HTML: html, diff --git a/email/utils.go b/email/utils.go index 6a83f5f..6ee2a81 100644 --- a/email/utils.go +++ b/email/utils.go @@ -4,6 +4,7 @@ import ( "fmt" "net/mail" "regexp" + "strings" "time" "maunium.net/go/mautrix/id" @@ -26,6 +27,10 @@ func MessageID(eventID id.EventID, domain string) string { func Address(email string) string { addr, _ := mail.ParseAddress(email) //nolint:errcheck // if it fails here, nothing will help if addr == nil { + list := AddressList(email) + if len(list) > 0 { + return strings.Join(list, ",") + } return email }