【发布时间】:2021-07-05 19:23:01
【问题描述】:
我正在使用 sendgrid go library 从我的 go 服务器发送一封带有以下 sn-p 的电子邮件:
to := mail.NewEmail("", req.ToEmail)
from := mail.NewEmail("", "xxx@gmail.com") // redacted
m := mail.NewV3MailInit(from, "", to)
m.SetTemplateID("d-xxxxx") // redacted
client := sendgrid.NewSendClient(os.Getenv("SENDGRID_API_KEY"))
resp, err := client.Send(m)
if err != nil {
log.Printf("failed to send email to %s: %v\n", req.ToEmail, err)
}
但是,当我没有设置 SENDGRID_API_KEY 环境变量时,err 仍然为零(响应如下:
{
StatusCode:401
Body:{"errors":[{"message":"The provided authorization grant is invalid, expired, or revoked","field":null,"help":null}]}
Headers:map[Access-Control-Allow-Headers:[Authorization, Content-Type, On-behalf-of, x-sg-elas-acl] Access-Control-Allow-Methods:[POST] Access-Control-Allow-Origin:[https://sendgrid.api-docs.io] Access-Control-Max-Age:[600] Connection:[keep-alive] Content-Length:[116] Content-Type:[application/json] Date:[Mon, 05 Jul 2021 19:15:31 GMT] Server:[nginx] Strict-Transport-Security:[max-age=600; includeSubDomains] X-No-Cors-Reason:[https://sendgrid.com/docs/Classroom/Basics/API/cors.html]]}
我盲目地认为err 应该设置为非零值,但我想我还需要查看响应中的状态代码。有没有快速检查返回的响应是否为OK 的方法?
【问题讨论】: