通过 http CONNECT 代理发送带有 net/smtp 的邮件

Sending a mail with net/smtp through http CONNECT proxy

我的 Go 程序使用 net/smtp 库发送邮件。

        client, err := smtp.Dial(addr)

当连接到 SMTP 服务器时,我想通过基于 HTTP CONNECT 的代理。

要通过 CONNECT 代理发送 SMTP 流量,您需要使用 smtp.NewClient(conn net.Conn, host string) 和现有连接 (net.Conn) 到您的 CONNECT 代理。

magisterquis/connectproxy 包很可能是创建此连接所需的:

d, err := connectproxy.New("https://proxyserver:4433", proxy.Direct)
if nil != err{
     panic(err)
}

c, err := d.Dial("tcp", "upstream.mail.server:25")
if nil != err {
     panic(err)
}

smtpClient, err := smtp.NewClient(c, "upstream.mail.server")
if nil != err {
     panic(err)
}