c81b3eb1cb8f25fb563b7d9ea99814e9ba21c737 — Reto Brunner 3 months ago 989730d
Sendmail: allow for arbitrary parameters

Allows the outgoing command to contain arguments and flags
1 files changed, 11 insertions(+), 1 deletions(-)

M commands/compose/send.go
M commands/compose/send.go => commands/compose/send.go +11 -1
@@ 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")