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.

1234567891011121314151617181920212223242526272829303132333435
  1. package alps
  2. import (
  3. "fmt"
  4. "github.com/emersion/go-smtp"
  5. )
  6. func (s *Server) dialSMTP() (*smtp.Client, error) {
  7. if s.smtp.host == "" {
  8. return nil, fmt.Errorf("SMTP is disabled")
  9. }
  10. var c *smtp.Client
  11. var err error
  12. if s.smtp.tls {
  13. c, err = smtp.DialTLS(s.smtp.host, nil)
  14. if err != nil {
  15. return nil, fmt.Errorf("failed to connect to SMTPS server: %v", err)
  16. }
  17. } else {
  18. c, err = smtp.Dial(s.smtp.host)
  19. if err != nil {
  20. return nil, fmt.Errorf("failed to connect to SMTP server: %v", err)
  21. }
  22. if !s.smtp.insecure {
  23. if err := c.StartTLS(nil); err != nil {
  24. c.Close()
  25. return nil, fmt.Errorf("STARTTLS failed: %v", err)
  26. }
  27. }
  28. }
  29. return c, err
  30. }