gpt4 book ai didi

go - 如何通过 socks 连接到 imap?去

转载 作者:IT王子 更新时间:2023-10-29 02:17:04 26 4
gpt4 key购买 nike

我正在尝试通过 socks5 连接到 IMAP 服务器.为此,我从 Imap 中导出了一些函数。包,但我卡在了 socks5 拨号器设置(第一步:)。 我认为原因是我将 nil 作为 forward (Dial 类型)参数传递。 forward 参数应该是什么?它没有记录(在 godoc 中)

func dialSocks(socks string) (Dial proxy.Dialer, err error) {
Dial, err = proxy.SOCKS5("tcp", socks, nil, nil)
return
}

func dialTLS(addr string, config *tls.Config) (c *imap.Client, err error) {
addr = defaultPort(addr, "993")
d, err := dialSocks("101.120.113.185:1328")
if err != nil {
log.Error(err)
return
}
conn, err := d.Dial("tcp", addr)
if err == nil {
host, _, _ := net.SplitHostPort(addr)
tlsConn := tls.Client(conn, setServerName(config, host))
if c, err = imap.NewClient(tlsConn, host, 60*time.Second); err != nil {
conn.Close()
}
}
return
}

func defaultPort(addr, port string) string {
_, _, err := net.SplitHostPort(addr)
if err != nil {
addr = net.JoinHostPort(addr, port)
}
return addr
}

最佳答案

forward 是用于连接到代理的Dialer

如果需要,您可以在此处使用 proxy.Direct(如果您查看源代码,这是包中的默认设置),但所做的只是委托(delegate)给 net。拨号(网络,地址)。如果您需要更多选项,请插入您自己的拨号器。

关于go - 如何通过 socks 连接到 imap?去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25151742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com