go - 通过 http CONNECT 代理使用 net/smtp 发送邮件
问题描述
我的 Go 程序向net/smtp
库发送了一封邮件。
client, err := smtp.Dial(addr)
连接到 SMTP 服务器时,我想通过基于 HTTP CONNECT 的代理。
解决方案
要通过 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)
}
推荐阅读
- javascript - chrome.storage.sync 调用未触发
- python - pandas:从列中的多索引创建条形图
- typescript - 我将如何定义一个期望大多数键共享一个类型并期望特定键不同的接口?
- session - Open ID Connect 会话管理访问/刷新令牌与会话 iFrame
- bash - Shell 变量不能用作另一个 shell 命令的参数
- apache - 如何更改 Apache Zeppelin UI 外观并对元素进行编辑
- python - 如何创建一个更新消息的循环?(paho-mqtt)
- javascript - 关系猫鼬
- c# - 如何在 UWP 应用程序中打开 exe 应用程序?
- sql - 从现有表创建新的 SQL Server 表