summary refs log tree commit diff stats
path: root/commands/compose/send.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/compose/send.go')
-rw-r--r--commands/compose/send.go22
1 files changed, 11 insertions, 11 deletions
diff --git a/commands/compose/send.go b/commands/compose/send.go
index 2c2e294..7956aee 100644
--- a/commands/compose/send.go
+++ b/commands/compose/send.go
@@ -2,7 +2,6 @@ package compose
 
 import (
 	"crypto/tls"
-	"errors"
 	"fmt"
 	"io"
 	"net/mail"
@@ -14,6 +13,7 @@ import (
 	"github.com/emersion/go-smtp"
 	"github.com/gdamore/tcell"
 	"github.com/miolini/datacounter"
+	"github.com/pkg/errors"
 
 	"git.sr.ht/~sircmpwn/aerc/widgets"
 	"git.sr.ht/~sircmpwn/aerc/worker/types"
@@ -37,7 +37,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 
 	uri, err := url.Parse(config.Outgoing)
 	if err != nil {
-		return err
+		return errors.Wrap(err, "url.Parse(outgoing)")
 	}
 	var (
 		scheme string
@@ -55,7 +55,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 
 	header, rcpts, err := composer.PrepareHeader()
 	if err != nil {
-		return err
+		return errors.Wrap(err, "PrepareHeader")
 	}
 
 	if config.From == "" {
@@ -63,7 +63,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 	}
 	from, err := mail.ParseAddress(config.From)
 	if err != nil {
-		return err
+		return errors.Wrap(err, "ParseAddress(config.From)")
 	}
 
 	var (
@@ -101,7 +101,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 			}
 			conn, err = smtp.Dial(host)
 			if err != nil {
-				return 0, err
+				return 0, errors.Wrap(err, "smtp.Dial")
 			}
 			defer conn.Close()
 			if sup, _ := conn.Extension("STARTTLS"); sup {
@@ -114,7 +114,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 				if err = conn.StartTLS(&tls.Config{
 					ServerName: serverName,
 				}); err != nil {
-					return 0, err
+					return 0, errors.Wrap(err, "StartTLS")
 				}
 			} else {
 				if starttls {
@@ -136,7 +136,7 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 				ServerName: serverName,
 			})
 			if err != nil {
-				return 0, err
+				return 0, errors.Wrap(err, "smtp.DialTLS")
 			}
 			defer conn.Close()
 		}
@@ -144,21 +144,21 @@ func SendMessage(aerc *widgets.Aerc, args []string) error {
 		// TODO: sendmail
 		if saslClient != nil {
 			if err = conn.Auth(saslClient); err != nil {
-				return 0, err
+				return 0, errors.Wrap(err, "conn.Auth")
 			}
 		}
 		// TODO: the user could conceivably want to use a different From and sender
 		if err = conn.Mail(from.Address); err != nil {
-			return 0, err
+			return 0, errors.Wrap(err, "conn.Mail")
 		}
 		for _, rcpt := range rcpts {
 			if err = conn.Rcpt(rcpt); err != nil {
-				return 0, err
+				return 0, errors.Wrap(err, "conn.Rcpt")
 			}
 		}
 		wc, err := conn.Data()
 		if err != nil {
-			return 0, err
+			return 0, errors.Wrap(err, "conn.Data")
 		}
 		defer wc.Close()
 		ctr := datacounter.NewWriterCounter(wc)