handle multiple emails in header 'To'

This commit is contained in:
Aine
2023-01-09 16:23:54 +02:00
parent 1e9558c1fc
commit 255ce8b143
3 changed files with 7 additions and 2 deletions

View File

@@ -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) {

View File

@@ -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,

View File

@@ -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
}