如何通过 socks 连接到 imap?去

Posted

技术标签:

【中文标题】如何通过 socks 连接到 imap?去【英文标题】:how to connect to imap through socks ? Go 【发布时间】:2014-08-06 03:24:46 【问题描述】:

我正在尝试通过 socks5 连接到 IMAP 服务器。为此,我从 Imap 包中导出了一些功能,但我被困在 socks5 dialer setup(1st step:) 中。 我认为原因是我将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

【问题讨论】:

【参考方案1】:

forward 是用于连接代理的Dialer

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

【讨论】:

以上是关于如何通过 socks 连接到 imap?去的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Fixie Socks(Heroku 插件)通过 mongoose 连接到 mongodb

如何通过蓝牙将 iPhone 连接到本地 Python 客户端?

如何使用 socks4a 从 node.js 连接到隐藏服务?

如何从未损坏的iPhone/ipodtouch连接到SOCKS代理

JavaScript 如何从未破解的iPhone / iPod Touch连接到SOCKS代理

使用 PHP 通过 IMAP 连接到 Gmail - SSL 上下文失败