summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--commands/compose/send.go12
1 files changed, 11 insertions, 1 deletions
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")