diff --git a/email.go b/email.go index 14b6089..8b6906c 100644 --- a/email.go +++ b/email.go @@ -16,6 +16,7 @@ import ( "mime" "mime/multipart" "mime/quotedprintable" + "net" "net/mail" "net/smtp" "net/textproto" @@ -414,10 +415,22 @@ func (e *Email) SendWithTLS(addr string, a smtp.Auth, t *tls.Config) error { } // Taken from the standard library // https://github.com/golang/go/blob/master/src/net/smtp/smtp.go#L300 - c, err := smtp.Dial(addr) + + host, _, err := net.SplitHostPort(addr) + if err != nil { + return err + } + + conn, err := tls.Dial("tcp", addr, &tls.Config{ServerName: host}) if err != nil { return err } + + c, err := smtp.NewClient(conn, host) + if err != nil { + return err + } + defer c.Close() if err = c.Hello("localhost"); err != nil { return err