smtp.Dial osclaíonn nasc nua chuig a sheoladh. Tar éis duit nasc a fháil trí sheachfhreastalaí HTTP CONNECT, cuir an sruth reatha sin chuig smtp.NewClient ina ionad.

Do fhreastalaí SMTP a éilíonn STARTTLS ar a phort aighneachta, féadfaidh an t-aistriú a bheith mar seo:

func smtpOverTunnel(conn net.Conn, mailHost string) (*smtp.Client, error) {
    client, err := smtp.NewClient(conn, mailHost)
    if err != nil {
        conn.Close()
        return nil, err
    }
    err = client.StartTLS(&tls.Config{
        ServerName: mailHost,
        MinVersion: tls.VersionTLS12,
    })
    if err != nil {
        client.Close()
        return nil, err
    }
    return client, nil
}

Is iad na pacáistí net, net/smtp agus crypto/tls. Soláthraíonn an glaoch tollán atá ceangailte cheana leis an óstach agus an port SMTP atá beartaithe, agus malartú CONNECT an tseachfhreastalaí críochnaithe. Ní leor TCP a oscailt chuig an seachfhreastalaí amháin: ní beannacht SMTP é freagra HTTP.

Is é mailHost ainm óstaigh an fhreastalaí SMTP, gan port. Coinnigh an t-aitheantas sin le haghaidh fíordheimhniú SMTP agus fíorú teastais. Cosnaíonn nasc TLS le seachfhreastalaí HTTPS cos eile den bhealach.

Tá an cliant aischurtha réidh le haghaidh fíordheimhniú SMTP agus idirbheart poist reatha an fheidhmchláir. Dún é nuair a bheidh tú críochnaithe. Cuir teorainn le diailiú, CONNECT agus oibríochtaí prótacail ina dhiaidh sin le polasaí spriocdháta an fheidhmchláir.

Caithfidh an seachfhreastalaí CONNECT a cheadú chuig an bport poist roghnaithe. Cuireann cuid acu teorainn leis do chinn scríbe HTTPS ar phort 443. Le haghaidh SMTP le TLS intuigthe, bunaigh seisiún TLS an chinn scríbe sula nglaonn tú NewClient in ionad STARTTLS a eisiúint.

Ailt ghaolmhara