summaryrefslogtreecommitdiff
path: root/commands/msg/unsubscribe.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/msg/unsubscribe.go')
-rw-r--r--commands/msg/unsubscribe.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/commands/msg/unsubscribe.go b/commands/msg/unsubscribe.go
index dec90d5..205a255 100644
--- a/commands/msg/unsubscribe.go
+++ b/commands/msg/unsubscribe.go
@@ -9,6 +9,7 @@ import (
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/models"
"git.sr.ht/~sircmpwn/aerc/widgets"
+ "github.com/emersion/go-message/mail"
)
// Unsubscribe helps people unsubscribe from mailing lists by way of the
@@ -84,10 +85,13 @@ func parseUnsubscribeMethods(header string) (methods []*url.URL) {
func unsubscribeMailto(aerc *widgets.Aerc, u *url.URL) error {
widget := aerc.SelectedTab().(widgets.ProvidesMessage)
acct := widget.SelectedAccount()
- defaults := map[string]string{
- "To": u.Opaque,
- "Subject": u.Query().Get("subject"),
+
+ h := &mail.Header{}
+ h.SetSubject(u.Query().Get("subject"))
+ if to, err := mail.ParseAddressList(u.Opaque); err == nil {
+ h.SetAddressList("to", to)
}
+
composer, err := widgets.NewComposer(
aerc,
acct,
@@ -95,7 +99,7 @@ func unsubscribeMailto(aerc *widgets.Aerc, u *url.URL) error {
acct.AccountConfig(),
acct.Worker(),
"",
- defaults,
+ h,
models.OriginalMail{},
)
if err != nil {