繁体   English   中英

如何通过袜子连接到imap? 走

[英]how to connect to imap through socks ? Go

我正在尝试通过socks5连接到IMAP服务器。 为此,我已经从Imap包中导出了一些函数,但是我陷入了socks5拨号程序设置的第一步(第一步:)。 我认为原因是我将nil传递为forwardDial类型)参数。 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 (这是软件包中的默认值,如果您查看源代码的话),但所有操作都委托给net.Dial(network, addr) 如果需要更多选项,请插入自己的Dialer。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM