diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/base/handlers.go | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/plugins/base/handlers.go b/plugins/base/handlers.go index c96dabf..d0ba9ba 100644 --- a/plugins/base/handlers.go +++ b/plugins/base/handlers.go @@ -13,6 +13,7 @@ import ( "github.com/emersion/go-imap" imapclient "github.com/emersion/go-imap/client" "github.com/emersion/go-message" + "github.com/emersion/go-smtp" "github.com/labstack/echo/v4" ) @@ -257,7 +258,9 @@ func handleCompose(ectx echo.Context) error { msg.Text = ctx.FormValue("text") msg.InReplyTo = ctx.FormValue("in_reply_to") - c, err := ctx.Session.ConnectSMTP() + err := ctx.Session.DoSMTP(func(c *smtp.Client) error { + return sendMessage(c, &msg) + }) if err != nil { if _, ok := err.(koushin.AuthError); ok { return echo.NewHTTPError(http.StatusForbidden, err) @@ -265,14 +268,6 @@ func handleCompose(ectx echo.Context) error { return err } - if err := sendMessage(c, &msg); err != nil { - return err - } - - if err := c.Quit(); err != nil { - return fmt.Errorf("QUIT failed: %v", err) - } - // TODO: append to IMAP Sent mailbox return ctx.Redirect(http.StatusFound, "/mailbox/INBOX") |