A webmail client. Forked from https://git.sr.ht/~migadu/alps
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

38 lines
777 B

  1. package alps
  2. import (
  3. "fmt"
  4. "github.com/emersion/go-imap"
  5. imapclient "github.com/emersion/go-imap/client"
  6. "github.com/emersion/go-message/charset"
  7. )
  8. func init() {
  9. imap.CharsetReader = charset.Reader
  10. }
  11. func (s *Server) dialIMAP() (*imapclient.Client, error) {
  12. var c *imapclient.Client
  13. var err error
  14. if s.imap.tls {
  15. c, err = imapclient.DialTLS(s.imap.host, nil)
  16. if err != nil {
  17. return nil, fmt.Errorf("failed to connect to IMAPS server: %v", err)
  18. }
  19. } else {
  20. c, err = imapclient.Dial(s.imap.host)
  21. if err != nil {
  22. return nil, fmt.Errorf("failed to connect to IMAP server: %v", err)
  23. }
  24. if !s.imap.insecure {
  25. if err := c.StartTLS(nil); err != nil {
  26. c.Close()
  27. return nil, fmt.Errorf("STARTTLS failed: %v", err)
  28. }
  29. }
  30. }
  31. return c, err
  32. }