отправить ssl по электронной почте используя sendgrid без финиша - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь отправить электронную почту, используя ssl smtp из сетки отправки, мой текущий код:

import (
    "crypto/tls"
    "fmt"
    "net"
    "net/smtp"
    "time"

    "github.com/toorop/go-dkim"
    "golang.org/x/net/proxy"
)

// SmtpSendOne - send email using smtp & proxy
func SmtpSendOne(server SmtpServer, data *MailData) error {
    var remote net.Conn
    var err error

    // TLS config
    tlsconfig := &tls.Config{
        InsecureSkipVerify: true,
        ServerName:         "example.com",
    }

    remote, err = net.DialTimeout("tcp", "smtp.sendgrid.net:456", 10*time.Second)
    defer remote.Close()

    if remote == nil {
        return fmt.Errorf("Proxy not working")

    }

    if err != nil {
        return fmt.Errorf("Failed to connect to SMTP server: %s", err)
    }

    client, err := smtp.NewClient(remote, server.Host)
    if err != nil {
        return err
    }

    defer client.Close()

    client.StartTLS(tlsconfig)

    auth := SmtpLoginAuth("apikey", "apikey")
    authErr := client.Auth(auth)
    if authErr != nil {
        return authErr
    }
    if err = client.Mail(data.From()); err != nil {
        return fmt.Errorf("MAIL failed : %s", err)
    }
    if err = client.Rcpt(data.To()); err != nil {
        return fmt.Errorf("RCPT failed %s", err)
    }

    bodyWriter, err := client.Data()
    if err != nil {
        return err
    }

    bodyWriter.Close()
    client.Quit()
    return nil
}

Проблема заключается в том, что когда я запускаю код, электронная почта не отправляется, и соединение никогда не умирает, не возвращаетсялюбая ошибкаЭто же можно понять, где я ошибся?Что мне не хватает?без ssl smtp работает без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...