我正在使用“ net / mail”和“ net / smtp”在Go中创建电子邮件客户端,但是当它位于代理服务器后面时会失败。
我对于http客户端也有同样的问题,但是使用&http.Transport{Proxy: http.ProxyFromEnvironment}
解决了该问题,但找不到SMTP的类似修复程序
以下代码在我的机器上有效,该机器在联合代理的后面。但是,如果我在不位于任何代理后面的VM上运行相同的代码,则可以正常工作。
package main
import (
"fmt"
"net/smtp"
)
func main() {
fmt.Println("email sending")
// Set up authentication information.
auth := smtp.PlainAuth(
"",
"ma****017@gmail.com",
"A***a",
"smtp.gmail.com",
)
// Connect to the server, authenticate, set the sender and recipient,
// and send the email all in one step.
err := smtp.SendMail(
"smtp.gmail.com:587",
auth,
"ma***17@gmail.com",
[]string{"chi****11@gmail.com"},
[]byte("This is the email body."),
)
if err != nil {
panic(err)
}
fmt.Println("email sent")
}
答案 0 :(得分:-1)
@Flimzy我是网络知识的新手,是的!现在,我了解到这不再是编码,而是更多的网络问题。
对我有用的解决方案是,我在代理计算机上配置了后缀以将其中继到Gmail SMTP服务器。 (确保您的代理服务器可以访问您需要的SMTP服务器)
需要在SMTP golang客户端中将代理计算机ip设置为SMTP主机。