首页 > 解决方案 > 通过 http CONNECT 代理使用 net/smtp 发送邮件

问题描述

我的 Go 程序向net/smtp库发送了一封邮件。

        client, err := smtp.Dial(addr)

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

标签: goproxysmtp

解决方案


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

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)
}


推荐阅读