为什么Sendgrid API可在localhost上运行但在服务器上需要另一个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)
    }

这是我的代码的一部分。当我在localhost中运行此代码时,一切正常,但是下载到服务器后。我有类似的问题

&{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]]}

请帮助解决此问题。

yingzishiwo 回答:为什么Sendgrid API可在localhost上运行但在服务器上需要另一个API

SendGrid's API需要授权标头。如果您使用的是client library,则可能已经设置了SENDGRID_API_KEY进行测试。

在新服务器中,确保为环境变量设置了let rec print_list = function [] -> () | e::l -> print_int e ; print_string " " ; print_list l

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

SENDGRID_API_KEY

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

cp .env_sample .env

有关API集的更多信息,请参见client library documentation

本文链接:https://www.f2er.com/3110152.html

大家都在问