我尝试创建具有proxy / socks5支持的电子邮件发件人,我的问题是当我在70%的时间中使用代理时goroutine由于超时原因而停止工作,我的当前代码是:
func SmtpSendOne(server SmtpServer, data *MailData) error {
var remote net.Conn
var err error
if server.ProxyAddr != "" {
dialer, err := proxy.SOCKS5("tcp", server.ProxyAddr, &server.ProxyAuth, proxy.Direct)
if err != nil {
log.Println("Could not connect to proxy: ", err)
return err
}
remote, err = dialer.Dial("tcp", server.Host+ ":" + server.Port)
if err != nil {
log.Println("Could not connect to server: ", err)
return err
}
}
我尝试首先使用此解决方案来调用此函数:
SmtpSendOne(try, delegate, smtpSrv, true)
select {
case res := <-delegate:
success <-res
case <-time.After(smtpTimeout):
success <-false
}
但是此代码不能解决我的问题,我的goroutines在工作5分钟后就死了,例如日志https://ghostbin.com/paste/e87x5,我如何为socks5 connexion设置超时时间?在golang文档中找不到任何文档:(谢谢