From f1d00df4dda7a35651359b76bad34a9d1262994d Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 20 Mar 2023 12:46:26 +0100 Subject: Upgrade to go-imap v2 --- imap.go | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'imap.go') diff --git a/imap.go b/imap.go index 7554331..e70a394 100644 --- a/imap.go +++ b/imap.go @@ -2,29 +2,42 @@ package alps import ( "fmt" + "io" + "mime" + "net" + "os" - "github.com/emersion/go-imap" - imapclient "github.com/emersion/go-imap/client" + "github.com/emersion/go-imap/v2/imapclient" "github.com/emersion/go-message/charset" ) -func init() { - imap.CharsetReader = charset.Reader -} - func (s *Server) dialIMAP() (*imapclient.Client, error) { + // TODO: don't print passwords to debug logs + var debugWriter io.Writer + if s.Options.Debug { + debugWriter = os.Stderr + } + + options := &imapclient.Options{ + DebugWriter: debugWriter, + WordDecoder: &mime.WordDecoder{ + CharsetReader: charset.Reader, + }, + } + var c *imapclient.Client var err error if s.imap.tls { - c, err = imapclient.DialTLS(s.imap.host, nil) + c, err = imapclient.DialTLS(s.imap.host, options) if err != nil { return nil, fmt.Errorf("failed to connect to IMAPS server: %v", err) } } else { - c, err = imapclient.Dial(s.imap.host) + conn, err := net.Dial("tcp", s.imap.host) if err != nil { return nil, fmt.Errorf("failed to connect to IMAP server: %v", err) } + c = imapclient.New(conn, options) if !s.imap.insecure { if err := c.StartTLS(nil); err != nil { c.Close() -- cgit v1.2.3-59-g8ed1b