SendGrid API V3 返回 400 Bad Request

iOS*_*Ser 6 bad-request sendgrid

我正在尝试通过SendGrid API实现邮件发送。

以下是我作为 POST 方法的主体发送的 JSON

{
  "content" : [
    {
      "type" : "text\/plain",
      "value" : "Hello, World!"
    }
  ],
  "personalizations" : [
    {
      "to" : [
        {
          "email" : "sahpranav1712@gmail.com"
        }
      ],
      "subject" : "Hello, World!"
    }
  ],
  "from" : {
    "email" : "iospranav1712@gmail.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是我得到的回报

{"message":"Bad Request","field":null,"help":null}
Run Code Online (Sandbox Code Playgroud)

这条信息没有多大帮助。

授权已经到位,我相信是正确的。

也许,我可能错过了SendGrid 应用程序中的某些设置

如果它有助于我使用Objective-C。

请帮忙!!

Dav*_*pko 15

400 BAD REQUEST 到底是什么?

为什么你从 SendGrid 得到信息400 BAD REQUEST只能猜测。400 BAD REQUEST 意思是哦,我们可能知道发生了什么,只是没有告诉你。

这是一种常见的“错误处理技术”,开发人员捕获错误并简单地返回 false,隐藏失败的任何细节或原因。

检查是否有重复的地址。

一个可能的原因是,抄送地址之一也是收件人地址,就像我的情况一样。您会看到,除其他事项外,SendGrid 不允许电子邮件地址在发送请求中出现多次,并且如果您碰巧在任何“收件人”、“抄送”或“密件抄送”列表中多次列出电子邮件收件人,SendGrid 只会发送返回 400 错误请求。

其他原因

对于 400 BAD REQUEST 还有许多其他记录不足的原因,我真诚地祝您好运,找出 SendGrid 拒绝您的原因的原因。这里的其他答案之一可能会对您有所帮助。

  • 响应包含错误原因,但不包含错误原因的情况除外。 (4认同)

tot*_*tas 7

我遇到了同样的问题,问题实际上是该personalizations字段中的所有替换都需要是字符串值(请参阅https://github.com/sendgrid/sendgrid-php/issues/264

"personalizations": [{
    "to": [{
        "email": "mail@gmail.com"
    }],
    "substitutions": {
        "{myFloatVal}": 16.5,
        "{firstname}": "Thomas"
    }
}]
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,Sendgrid 确实需要添加更好的错误消息响应 (10认同)

iOS*_*Ser 1

没有设置[manager setRequestSerializer:[AFJSONRequestSerializer serializer]]; 是问题!