From ce0d0e887ccf386006a5f1a425d9aa971190c610 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 16 May 2019 14:16:45 -0400 Subject: [PATCH] Improve reply-all recipient enumeration strategy --- commands/account/reply.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/commands/account/reply.go b/commands/account/reply.go index 211af75..06f93f1 100644 --- a/commands/account/reply.go +++ b/commands/account/reply.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + gomail "net/mail" "strings" "github.com/emersion/go-message" @@ -42,6 +43,8 @@ func Reply(aerc *widgets.Aerc, args []string) error { } acct := aerc.SelectedAccount() + conf := acct.AccountConfig() + us, _ := gomail.ParseAddress(conf.From) store := acct.Messages().Store() msg := acct.Messages().Selected() acct.Logger().Println("Replying to email " + msg.Envelope.MessageId) @@ -75,6 +78,19 @@ func Reply(aerc *widgets.Aerc, args []string) error { addr.MailboxName, addr.HostName)) } } + for _, addr := range msg.Envelope.To { + address := fmt.Sprintf("%s@%s", addr.MailboxName, addr.HostName) + if address == us.Address { + continue + } + if addr.PersonalName != "" { + to = append(to, fmt.Sprintf("%s <%s@%s>", + addr.PersonalName, addr.MailboxName, addr.HostName)) + } else { + to = append(to, fmt.Sprintf("<%s@%s>", + addr.MailboxName, addr.HostName)) + } + } } var subject string