From c81b3eb1cb8f25fb563b7d9ea99814e9ba21c737 Mon Sep 17 00:00:00 2001 From: Reto Brunner Date: Sun, 28 Jul 2019 14:33:46 +0200 Subject: [PATCH] Sendmail: allow for arbitrary parameters Allows the outgoing command to contain arguments and flags --- commands/compose/send.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/commands/compose/send.go b/commands/compose/send.go index 29da94d..202d8c6 100644 --- a/commands/compose/send.go +++ b/commands/compose/send.go @@ -14,6 +14,7 @@ import ( "github.com/emersion/go-sasl" "github.com/emersion/go-smtp" "github.com/gdamore/tcell" + "github.com/google/shlex" "github.com/miolini/datacounter" "github.com/pkg/errors" @@ -183,7 +184,16 @@ func (_ Send) Execute(aerc *widgets.Aerc, args []string) error { } sendmailAsync := func() (int, error) { - cmd := exec.Command(uri.Path, rcpts...) + args, err := shlex.Split(uri.Path) + if err != nil { + return 0, err + } + if len(args) == 0 { + return 0, fmt.Errorf("no command specified") + } + bin := args[0] + args = append(args[1:], rcpts...) + cmd := exec.Command(bin, args...) wc, err := cmd.StdinPipe() if err != nil { return 0, errors.Wrap(err, "cmd.StdinPipe")