为什么 Sendgrid API 在 localhost 中工作但在服务器中需要另一个 API

Why Sendgrid API works in localhost but in server need another API

今天我遇到了 Sendgrid 问题。我收到 SendGrid API 并写入消息

from := mail.NewEmail(message.Fullname, "example@gmail.com")
    subject := "Новая заявка в Litro.kz"
    to := mail.NewEmail(message.Fullname, "example@gmail.com")
    plainTextContent := "ФИО: "+ message.Fullname + "\n Email:  " +message.Email + "\n Номер телефона: "+ message.Phone +"\n Сообщение: "+message.Text
    htmlContent := "ФИО: "+ message.Fullname + "<br> Email:  " +message.Email + "<br> Номер телефона: "+ message.Phone +"<br> Сообщение: "+message.Text
    messages := mail.NewSingleEmail(from, subject, to, plainTextContent, htmlContent)

    client := sendgrid.NewSendClient(os.Getenv("SENDGRID_API_KEY"))
    response, err := client.Send(messages)

    if err != nil || response.StatusCode!=202 {
        log.Println(err)
        fmt.Println(response)
        return u.Message(false,"Error")
    }else{
        fmt.Println(response.Body)
        fmt.Print(response.StatusCode)
    }

这是我的代码的一部分。当我 运行 本地主机中的这段代码一切正常,但在我下载到服务器之后。我有这样的问题

&{401 {“errors”:[{“message”:“Permission denied, wrong credentials”,“field”:null,“help”:null}]} 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:[88] Content-Type:[application/json] Date:[Mon, 04 Nov 2019 08:33:17 GMT] Server:[nginx] X-No-Cors-Reason:[https://sendgrid.com/docs/Classroom/Basics/API/cors.html]]}

请帮忙解决这个问题。

SendGrid's API requires an authorization header. If you are using a client library a SENDGRID_API_KEY 可能是为了测试而设置的。

在新服务器中,确保环境变量设置为SENDGRID_API_KEY

对于Java,将示例环境文件复制到新文件

cp .env_sample .env

编辑新的 .env 以添加您的 API 密钥,然后获取 .env 文件以在当前会话中设置 rhe 变量

source .env

有关 API 集的更多信息可以在 client library documentation.

中找到