smtp.Dial fosglaichidh e ceangal ùr chun na seòladh aige. Às dèidh dhut ceangal fhaighinn tro phroxy HTTP CONNECT, thoir an t-sruth a th' ann mu thràth gu smtp.NewClient na àite.

Airson frithealaiche SMTP a dh'fheumas STARTTLS air a' phort tagraidh aige, faodaidh an tar-ghlacadh a bhith 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 pacaidean net, net/smtp agus crypto/tls. Bheir an neach-fios tunail a tha ceangailte mu thràth ris an aoigheachd agus am port SMTP a thathar an dùil, leis iomlaid CONNECT a' phroxy deiseil. Chan eil fosgladh TCP don phroxy a-mhàin a' dol fada gu leòr: chan e fàilte SMTP a th' ann am freagairt HTTP.

Is e mailHost ainm aoigheachd an fhrithealaiche SMTP, gun phort. Cùm an dearbh-aithne sin airson dearbhadh SMTP agus dearbhadh teisteis. Bheir ceangal TLS ri proxy HTTPS dìon air cas eile den t-slighe.

Tha an cliant a thill deiseil airson dearbhadh SMTP agus gnothach puist a' bharr-rèite a th' ann mu thràth. Dùin e nuair a bhios tu deiseil. Cuir crìoch air fònadh, CONNECT agus obrachaidhean pròtacail às dèidh sin le poileasaidh ceann-latha a' bharr-rèite.

Feumaidh am proxy CONNECT a cheadachadh chun a' phuirt phuist a thagh thu. Cuingealaichidh cuid e ri cinn-siubhail HTTPS air port 443. Airson SMTP le TLS fo-thuigsinn, stèidhich seisean TLS a' chinn-siubhail mus cuir thu fios air NewClient an àite STARTTLS a sgaoileadh.

Artaigilean co-cheangailte