【发布时间】:2016-02-08 10:14:38
【问题描述】:
我正在尝试使用 sendgrid 和 golang 发送邮件。
我正在使用"github.com/sendgrid/sendgrid-go"
每当我在代码中运行发送电子邮件的部分时,都会收到此错误:
sendgrid.go: error:net/http: Client Transport of type init.failingTransport doesn't support CancelRequest; Timeout not supported; response:<nil>
我不知道它是什么..
这是我的代码:
sg := sendgrid.NewSendGridClientWithApiKey("string")
email := sendgrid.NewMail()
email.AddTo(req.Email)
email.SetSubject("Confirm your registration at domain")
email.SetFrom("noreply@domain.com")
email.SetFromName("domain")
email.SetText(url)
if r := sg.Send(email); r == nil {
log.Infof(ctx, "email sent")
} else {
log.Errorf(ctx, "email not sent %v", r)
w.WriteHeader(http.StatusInternalServerError)
return
}
【问题讨论】:
-
看起来好像你正在超时。如果您也尝试远程登录到邮件服务器上的 25 端口,是否会超时?
-
我无法使用端口 25 远程登录到 smtp.sendgrid.net。但是如果我使用另一个端口 587 可以远程登录。也许这就是问题所在?
-
让我重新表述一下:如果您遇到超时错误,请先验证连接,而不是验证代码。我不知道这个特定的服务,所以我不能确切地告诉你应该如何测试它——但如果你使用 SMTP,你可能必须告诉你的应用程序使用 587 而不是 25。如果你'再次使用 HTTP/HTTPS API,首先验证与该端口的连接。
-
只是烦人:它被称为 Go 而不是 golang。
-
Golang 的浏览器友好性,是的。这很烦人。
标签: google-app-engine go sendgrid